|
Мобильное приложение 1с+JavaScript+IIS ошибка 401.5 | ☑ | ||
---|---|---|---|---|
0
ТутЯ
03.02.17
✎
15:15
|
Добрый день!
Мобильное приложение 1с. В приложении есть объект "Поле HTML документа" в котором пишу следующий код на JavaScript. ... function Хwrite(){ var XHR = (""onload"" in new XMLHttpRequest()) ? XMLHttpRequest : XDomainRequest; var invocation = new XHR(); var invocation = new XMLHttpRequest(); var url = '"+URL+"'; var body = '<?xml version=""1.0"" encoding=""utf-8""?>'+ '<soapenv:Envelope xmlns:soapenv=""http://www.w3.org/2003/05/soap-envelope"" xmlns:sam=""http://www.sample-package.org""> \ <soapenv:Header/> \ <soapenv:Body> \ <sam:Metka> \ <sam:СсылкаЗН>""{""#"",54b442b6-253a-4c8b-b790-6236a2ab5425,168:8ce2002590c0109011e6ab01fce44a21} ""</sam:СсылкаЗН> \ </sam:Metka> \ </soapenv:Body> \ </soapenv:Envelope> '; invocation.onload = function () { alert('1.'+invocation.responseText); } invocation.onerror = function () { alert('2.'+this.responseText); } invocation.open(""POST"", url, true); invocation.setRequestHeader('Content-Length', '381'); invocation.setRequestHeader('Host', 'ххххх.ххх.ххх'); invocation.setRequestHeader('Content-Type','text/xml; charset=utf-8'); invocation.setRequestHeader('Server','Microsoft-IIS/7.5'); invocation.setRequestHeader('X-Powered-By','ASP.NET'); invocation.setRequestHeader('Authorization', 'Basic V2ViU2....6MTIz'); invocation.send(body); }; .... в логах IIS получаю ошибку 401.5. Пишу тот же запрос и заголовки в Fiddler или в 1с через WinHttp = Новый COMОбъект("WinHttp.WinHttpRequest.5.1"); и получаю 200-ОК. ПОМОГИТЕ, пожалуйста. |
|||
1
Юрий Лазаренко
03.02.17
✎
15:28
|
Кроссдоменный запрос?
https://learn.javascript.ru/xhr-crossdomain |
|||
2
ТутЯ
03.02.17
✎
15:33
|
Вот я не могу ответить Кросс-доменные или нет, т.к. не понимаю. Заголовки пыталась ставить такие
//WinHttp.setRequestHeader("Access-Control-Allow-Origin", "*"); // //WinHttp.setRequestHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE"); //WinHttp.setRequestHeader("Access-Control-Allow-Headers", "Content-Type, Accept"); //WinHttp.setRequestHeader("Access-Control-Max-Age", "1728000"); не помогло |
|||
3
ТутЯ
03.02.17
✎
15:36
|
Все происходит на одном сервере.
Боевая база 8.2 и конфигурация 8.3.9 мобильная. |
|||
4
ТутЯ
03.02.17
✎
15:36
|
Я путаюсь. Подскажите, пожалуйста.
|
|||
5
ТутЯ
03.02.17
✎
15:46
|
Мне нужно из "Поле HTML документа" в мобильном приложении (МП) каким-то образом записывать данные в 1с. Пытаюсь это сделать через веб сервис боевой базы, т.к. функция "При изменении" не работает в МП и нет у объекта "Поле HTML документа" нет "Документ".
Если есть какие-то варианты другие подскажите, пожалуйста. Я уже практически плачу))). Литературу, ссылки, хоть что-то... |
|||
6
ТутЯ
03.02.17
✎
16:05
|
(1) Юрий, Вы скорее всего, хорошо разбираетесь в этом. Подскажите, пожалуйста, что нужно сделать в моем у случае.
|
|||
7
ТутЯ
03.02.17
✎
16:08
|
"Смотрю в книгу и вижу фигу".
Написано что ответ сервера должен быть с заголовком "Access-Control-Expose-Headers". Это я не понимаю. Как это сделать? |
|||
8
Юрий Лазаренко
03.02.17
✎
16:11
|
(7) Веб-сервис боевой базы возвращает какой-то ответ. У ответа есть заголовки, вот в этих заголовках надо прописать
Access-Control-Expose-Headers |
|||
9
svsvsv
03.02.17
✎
16:11
|
(7) попробуй использовать событие не "ПриИзменении", а "ПриНажатии". Здесь нужно каким-то образом использовать ссылку
|
|||
10
Юрий Лазаренко
03.02.17
✎
16:12
|
+(8) В статье, ссылку на которую я кидал, об этом написано как раз.
|
|||
11
ТутЯ
03.02.17
✎
16:23
|
(9) у меня "При нажатии" не работает на мобильном
|
|||
12
ТутЯ
03.02.17
✎
16:26
|
Юрий, а ответ веб сервиса должен быть строка с текстом заголовков или нет?
|
|||
13
ТутЯ
03.02.17
✎
16:29
|
Я еще только начинаю работать с такими объектами. Не понимаю что происходит. Объект на явескрипт отправляет соап запрос веб сервису 1с. ИИС принимает "OPTIONS" и не проходит авторизацию (ошибка 401.5). До 1с мы не доходим. Разве нет?
|
|||
14
ТутЯ
03.02.17
✎
16:38
|
Меня смущает что расшифровка 401.5 — Авторизация не выполнена из-за приложения ISAPI/CGI.
Тут точно не в настройке IIS дело? |
|||
15
Юрий Лазаренко
03.02.17
✎
16:39
|
(12) Я веб-сервисами давно не пользуюсь, вместо них есть http-сервисы, там все нормально можно устанавливать.
|
|||
16
ТутЯ
03.02.17
✎
16:40
|
8.2
|
|||
17
Юрий Лазаренко
03.02.17
✎
16:41
|
Жаль
|
|||
18
ТутЯ
03.02.17
✎
16:48
|
Кто-нибудь еще хочет что-то сказать? Высказывайтесь))). Как выкрутиться?
|
|||
19
Tateossian
03.02.17
✎
16:48
|
(5) Как вариант вместо мобильного приложения на 1С написать приложение в Android Studio.
|
|||
20
ТутЯ
03.02.17
✎
16:48
|
я уже пытаюсь, но родное не бросаю)
|
|||
21
ТутЯ
03.02.17
✎
16:50
|
Приложение большое, но есть вот такие интересные объекты с которыми хочется работать. Возможно ли?
|
|||
22
Tateossian
03.02.17
✎
16:50
|
(20) Напиши прокси-сервис, который будет вызываться из 1С.
|
|||
23
Tateossian
03.02.17
✎
16:51
|
(21) Среднестатический 1Сник быстро разберется
https://developer.android.com/reference/android/content/Intent.html |
|||
24
Tateossian
03.02.17
✎
16:52
|
(21) Полагаю, у тебя же не iOS?
|
|||
25
ТутЯ
03.02.17
✎
16:53
|
любое устройство может быть
|
|||
26
Tateossian
03.02.17
✎
17:05
|
Вот что пишут в stackoverflow:
this.xmlDoc.setRequestHeader('Authorization','Basic ' + Base64.encode("User:Password")); Возможно, дело в неправильном авторизационном токене. |
|||
27
ТутЯ
03.02.17
✎
17:07
|
беру Fiddler вставляю строку Authorization: Basic V2ViU2V....тут скроем...M6MTIz и получает ответ 200
|
|||
28
ТутЯ
03.02.17
✎
17:10
|
пишем в 1с кнопочку
WinHttp = Новый COMОбъект("WinHttp.WinHttpRequest.5.1"); WinHttp.Option(2,"utf-8"); WinHttp.Open("POST",URL,0); вставляем только WinHttp.setRequestHeader("Authorization","Basic V2Vi.....MTIz"); WinHttp.SEND(DOC); Если (WinHTTP.Status = 200) Тогда Ответ = WinHTTP.ResponseText; Иначе Сообщить("Статус ответа WinHttpRequest " + Строка(WinHTTP.Status) + ", произошла ошибка!"+ Символы.ПС+WinHTTP.ResponseText); Ответ = ""; КонецЕсли; и получаем ответ 200 |
|||
29
ТутЯ
03.02.17
✎
17:10
|
пишу символы явно
|
|||
30
ТутЯ
03.02.17
✎
17:12
|
т.е. везде работает а с мобильного через яву скрипт не работает. Что не так?
|
|||
31
DitriX
03.02.17
✎
17:12
|
Мне нужно из "Поле HTML документа" в мобильном приложении (МП) каким-то образом записывать данные в 1с. Пытаюсь это сделать через веб сервис боевой базы, т.к. функция "При изменении" не работает в МП и нет у объекта "Поле HTML документа" нет "Документ".
Вот тут по подробнее, а то звчит как неимоверный костыль, что именно вы хоите сделать? |
|||
32
ТутЯ
03.02.17
✎
17:16
|
Я не спорю что могу делать большой костыль. Подскажите, плиз, как можно сделать проще.
Задача: В мобильном приложении есть картинка- тыкаем пальцем на картинку и на ней появляются некоторые объекты. Координаты этих объектов мы хотим сохранить в 1с. Не важно где на форме Мп или в 1с боевой. На примере я пытаюсь отправить веб сервису боевой базы строчку и хочу получить ответ(пока не обрабатываю сам ответ). |
|||
33
ТутЯ
03.02.17
✎
17:18
|
Как связать "Поле HTML документа" с 1с мобильного приложения?
|
|||
34
Tateossian
03.02.17
✎
17:21
|
У поля есть событие ПриНажатии, в параметр передается данныеОСобытии.
После этого в МП вызывается некая функция, которая реализует вызов веб сервиса (объект конфигурации WS ссылка) |
|||
35
DitriX
03.02.17
✎
17:23
|
(32) страницу в студию:)
|
|||
36
ТутЯ
03.02.17
✎
17:25
|
у меня не срабатывает эта процедура
|
|||
37
ТутЯ
03.02.17
✎
17:25
|
на мобильном эти процедуры не работают
|
|||
38
ТутЯ
03.02.17
✎
17:26
|
Если конфигурацию МП открыть на ПК, то будут работать, но мне же нужно на МП.
|
|||
39
ТутЯ
03.02.17
✎
17:28
|
(32) (35) показать картинку или что?
Обычная картинка на ней крестики- все. |
|||
40
Tateossian
03.02.17
✎
17:34
|
(37) А сделать форму управляемую c картинкой? Почему именно HTML?
|
|||
41
ТутЯ
03.02.17
✎
17:35
|
||||
42
ТутЯ
03.02.17
✎
17:35
|
(40) а как метки ставить?
|
|||
43
ТутЯ
03.02.17
✎
17:37
|
(40)Картинками не получится наложить картинку на картинку.
|
|||
44
ТутЯ
03.02.17
✎
17:38
|
Таких объектов несколько и это самый простой пример.
|
|||
45
Юрий Лазаренко
03.02.17
✎
18:04
|
(30) На мобильном ты со страницы с одним URL пытаешься дернуть аяксом сайт с другим URL, а аякс в этом случае может козлить. Похоже именно этот случай.
https://yandex.ru/search/?lr=959&msid=1486134238.4276.22885.1344&text=ajax%20запрос%20на%20другой%20домен |
|||
46
ТутЯ
03.02.17
✎
18:22
|
(45) спасибо. Я попробую разобраться. Появлюсь чуть позже.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |