Имя: Пароль:
1C
1С v8
HTTP-сервисы 1С 8.3 и Ajax - ответы
0 beholder13
 
28.02.17
15:32
Доброй день, коллеги.

Есть 1С-сервер, на котором расшарен HTTP-сервис с обработкой запросов GET/POST. Есть страница со скриптом на jQuery, которая методом .ajax() обращается к HTTP-сервису на 1С. Запрос доходит до сервера, заходит в обработчик, ответ формируется, отправляется на клиент, но ajax его не принимает, отрабатывает обработчик error.
В заголовках запроса приходит "Accept" со значением "*/*", то есть, должен принимать все, но он не хочет принимать даже пустой "200". Есть мнение, что в заголовках ответа чего-то не хватает, но в своем гугле я не могу нарыть в документации чего-то, что могло бы помочь.
Вопрос - как сформировать ответ, чтобы ajax его принял?

Заранее спасибо.
1 beholder13
 
28.02.17
15:36
(0) *Добрый
2 Fragster
 
гуру
28.02.17
15:38
Процедура ЗаполнитьЗаголовки(Запрос, Ответ)
    
    Ответ.Заголовки.Вставить("Access-Control-Allow-Headers", "Authorization,Content-type");
    Ответ.Заголовки.Вставить("Access-Control-Allow-Credentials", "true");
    Если Ложь Тогда Запрос = Новый HTTPЗапрос; КонецЕсли;
    Origin = Запрос.Заголовки.Получить("Origin");
    Если Origin = Неопределено Тогда
        Ответ.Заголовки.Вставить("Access-Control-Allow-Origin", "*");
    Иначе
        Ответ.Заголовки.Вставить("Access-Control-Allow-Origin", Origin);
    КонецЕсли;    
    
КонецПроцедуры

Функция ШаблонOptions(Запрос)
    
    Ответ = Новый HTTPСервисОтвет(200);
    ЗаполнитьЗаголовки(Запрос, Ответ);
    Возврат Ответ;
    
КонецФункции
3 Fragster
 
гуру
28.02.17
15:38
этого должно хватить для старта
4 Fragster
 
гуру
28.02.17
15:39
а дальше тебе надо как-то сделать так, чтобы options работал без авторизации ;)
5 beholder13
 
28.02.17
15:40
(2)
>> Если Ложь Тогда Запрос = Новый HTTPЗапрос; КонецЕсли;
6 beholder13
 
28.02.17
15:40
(4) C OPTIONS я уже разобрался, спасибо =)
7 Fragster
 
гуру
28.02.17
15:40
(5) так надо
8 beholder13
 
28.02.17
15:41
(2) Взлетело, спасибо огромное =)
9 beholder13
 
28.02.17
15:42
(7) я просто немного смеюсь с этой строчки)
10 Fragster
 
гуру
28.02.17
15:43
(9) зря, такие строки очень облегчают разработку в конфигураторе 1с
11 Pentosh
 
28.02.17
15:45
(10) а можете объяснить подробнее?
12 Fragster
 
гуру
28.02.17
15:46
(11) после этого работает пародия на intellisense
13 Pentosh
 
28.02.17
15:47
(12) понял, спасибо)
14 badboychik
 
28.02.17
15:54
(12) бдин, это лайфхак года!
15 Crucian
 
28.02.17
16:08
(13) Объясни вслух
16 Fragster
 
гуру
28.02.17
16:10
(14) хз, я лет пять использую
17 Юрий Лазаренко
 
28.02.17
16:18
(12) "Ай да Пушкин, ай да сукин сын" (с)
18 beholder13
 
28.02.17
16:19
(10) я понимаю, чтобы контекстная подсказка выводилась =)
19 oleg_km
 
01.03.17
10:32
(16) Да, только если это переменная модуля, то эту магическую строчку нужно пихать в каждую процедуру.
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.