gifts2017

HTTP-сервисы в 1С Предприятие 8.3

Опубликовал Ivan Khorkov (vano-ekt) в раздел Программирование - Практика программирования

В платформе 1С Предприятие 8.3 появилась возможность создавать HTTP-сервисы. Пример работы.

В платформе 1С Предприятие 8.3 появилась возможность создавать HTTP-сервисы

C помощью встроенного языка, теперь можно сформировать ответ на запрос. При этом у вас есть удобный доступ к телу, заголовкам и строке исходного запроса, а также имеется возможность формировать код, тело и заголовки ответа по своему усмотрению.

По сравнению с имеющимися в платформе SOAP web-сервисами, HTTP-сервисы имеют ряд преимуществ:

  • Простота программирования клиента таких сервисов;
  • Потенциально меньший объем передаваемых данных;
  • Потенциально меньшая вычислительная нагрузка;
  • HTTP-сервисы ориентированы на «ресурсы», в то время как SOAP сервисы ориентированы на «действия».

В базе http83.dt продемонстрирована реализация http-сервисов

http-сервис СписокНакладных

В http-сервисе использованы шаблоны URL, реализована обработка свойства ПараметрыURL объекта HTTPСервисЗапрос
В данном примере показано, как можно создать базу-прокладку между рабочей базой и корпоративным сайтом
Подключение производится к демо-базе "Управление торговлей 11", в которой предварительно для справочника "Контрагенты" нужно задать доп.свойство с названием Пароль к вэб, где будем хранить пароль для доступа.
В http-запрос будет передаваться в параметры URL: ИНН в качестве логина и пароль.
При обработке запроса происходит подключение через ComConnector к УТ(тормоза гарантированы Laughing ), и оттуда производиться выборка
Не претендую на быстроту и безопасность этого решения, оно в качестве примера

Итак. В дереве метаданных появилась новая ветка  - HTTP-сервисы
Создаем новый сервис, указываем его имя и корневой URL(list)
Корневой URL будет использоваться для вызова нашего http-сервиса
Далее добавим в http-сервис Шаблон URL, указав в качестве шаблона "/{Логин}/{Пароль}"
Такой шаблон позволит при обработке http-запроса получить в парметрах URL соответствующую структуру параметров и их значения
Теперь, к нашему шаблону URL добавим метод с именем "get", в качестве http-метода выберем GET
Открываем обработчик, и пишем код
Обработчик метода представляет собой функцию, которая должна возвращать значение типа HTTPСервисОтвет

http-сервис СтатусЗаказа

В примере реализована обработка переменных, переданных методом POST, формирование ответа в виде html-страницы.
Выборка данных на этот раз производится из базы, где лежат hs, поэтому работает существенно быстрее предыдущего http-сервиса.
При реализации рабочей системы имеет смысл создать объекты в базе (с сервисом) и настроить миграцию данных из базы-источника (например, отдельным фоновым процессом). Выборку при обработке http-запроса производить непосредственно из базы, где он находится.

Публикация

Об установке и настройке веб-сервера информации предостаточно.
Я использовал сборку httpd-2.2.25-win32-x86-openssl-0.9.8y.exe отсюда 
Устанавливал по методу "Далее-Далее-Финиш" :)
Публикация http-сервисов находится там же, где была и есть публикация веб-сервисов и особо ничем не отличается.
После установки веб-сервера в режиме "Конфигуратор" переходим по меню "Администрирование" - "Публикация на веб-сервере"
На вкладке "HTTP-сервисы" задаем имя публикации, веб-сервер , каталог публикации, и отмечаем наши сервисы(в моем случае имя - "web", веб-сервер Apache 2.2)
При публикации в файл конфигурации httpd.conf автоматически записываются соответствующие блоки и сервер перезапускается (при первой публикации)
Обращение http-сервису
Пример: http://mysite/web/hs/list , где
mysite - адрес сервера (на если веб-сервер установлен локально - можно использовать 127.0.0.1)
web - имя, указанное при публикации (альяс)
hs - обязательный сегмент пути, сообщающий серверу, что будет происходить работа с http-сервисами
list - корневой url веб-сервиса

Тестируем

Список накладных

http://127.0.0.1/web/hs/list/7705260681/pswMP (Не забудьте настроить доп.свойство в УТ для пароля)

Предполагается, что для доступа к реестру документов пользователь обращается по прямой ссылке, содержащей ИНН и пароль

Статус заказа

http://127.0.0.1/web/hs/check

Запрос и ответ расположены по одному URL. При входе на страницу срабатывает метод GET, возвращающий html-форму 

При нажатии "Проверить" происходит отправка номера заказа методом POST на этот же URL, ответ возвращается с той же формой запроса, дополненной данными по запрошенному заказу. 

В прикрепленном файле - выгрузка БД для 1С 8.3. В конфигурации реализованы 2 http-сервиса (из публикации), настройка com-соединения с демао базой УТ 11, документ "Заказ".

Что потребуется для запуска и тестирования

  • веб-сервер
  • любой веб-браузер
  • актуальный релиз 1С: Предприятие 8.3 

Скачать файлы

Наименование Файл Версия Размер
http83.dt 420
.dt 28,60Kb
10.12.16
420
.dt 28,60Kb Скачать

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Dmitry Grabarev (dmitry-gr) 18.09.14 15:18
Вот еще бы для SOAP сервисов добавили доступ к заголовкам, было бы замечательно.
2. Алексей Белоусов (AllexSoft) 18.09.14 15:44
Вообще нужная статейка, всегда интересно посмотреть на новые возможности...
(1) dmitry-gr, зачем?
3. Василий Казьмин (awk) 18.09.14 23:01
(0) Статья: "Зырь какие картинки. Дай стартмань качни поставь и разбирайся"?
4. Ivan Khorkov (vano-ekt) 19.09.14 00:00
(3) в формате "ребятам о зверятах" или "1с для чайников" хочется? Статья для программистов, предполагается что есть опыт работы с хотя бы ws. Тонны теории по протоколу http, куча картинок и многабукф - кому это надо, тут не вики :)
В выходные запилю поинтересней статью, букв будет немного, но конфа посерьезней
andrean; AllexSoft; +2 Ответить 1
5. Илья Коротков (molodoi1sneg) 19.09.14 10:49
(4) vano-ekt, спасибо за публикацию. Сходу не взлетело, буду разбираться дальше.
6. Ivan Khorkov (vano-ekt) 19.09.14 11:07
7. Сергей Фомин (sergei2k) 19.09.14 18:30
Для нормальной работы, например в Хроме, нужно установить заголовок Content-Type = text/html
adhocprog; monkbest; +2 Ответить 1
8. Ivan Khorkov (vano-ekt) 19.09.14 19:19
(7) если html страничка - то да, в базе так и сделано
Функция СтатусЗаказа(Запрос) Экспорт 
	
	Ответ = Новый HTTPСервисОтвет(200);
	
	Ответ.Заголовки.Вставить("Content-Type","text/html; charset=windows-1251");
	
	тОтвет = "<h2>Проверить состояние заказа</h2>";
	ПараметрыЗ = ОбщегоНазначения.ПолучитьПараметры(Запрос.ПолучитьТелоКакСтроку());
	
	ФормаСтатуса = ПолучитьОбщийМакет("ФормаСтатусаЗаказа").ПолучитьТекст();
	тОтвет = тОтвет+ФормаСтатуса;
		
	НомерЗаказа  = ПараметрыЗ["OrderNum"];
	Если ЗначениеЗаполнено(НомерЗаказа) Тогда
		Попытка
		НомерЗаказа = Формат(Число(НомерЗаказа),"ЧЦ=9; ЧВН=; ЧГ=");
		Исключение
		КонецПопытки;
		ЗаказСсылка = Документы.Заказы.НайтиПоНомеру(НомерЗаказа);
		Если ЗначениеЗаполнено(ЗаказСсылка) Тогда
			тОтвет = тОтвет+ "Заказ "+ НомерЗаказа +"(" + ЗаказСсылка.Сумма +" р.): " +  ЗаказСсылка.Состояние +"";
		Иначе
			тОтвет = тОтвет+ "Заказ "+ НомерЗаказа +" не найден";
		КонецЕсли;
	КонецЕсли;
		
	Ответ.УстановитьТелоИзСтроки("<html><head><title>Проверить статус заказа</title></head><body>"+тОтвет+"</body></html>");
	
	Возврат Ответ;
	
КонецФункции
...Показать Скрыть
9. Дмитрий Шерстобитов (DitriX) 20.09.14 13:15
(8) представляю себе, если бы я так статьи писал :)
Я тоже вот собирался на днях немного заняться этим вопросом более детально. Но раз вы уже начали, то продолжайте, только копайте глубже.
Если нет опыта в написании статей такого рода -могу предложить свою помощь, на уровне критика и консультанта.
10. Сергей Галюк (dj_serega) 20.09.14 15:57
11. Ivan Khorkov (vano-ekt) 20.09.14 16:36
(9) я думаю, лучше свою напишите, больше публикаций - больше информации :) тем более механизм новый, а на ИС пока только эта статья
12. Ivan Khorkov (vano-ekt) 21.09.14 23:03
13. Сергей Отческий (otcheskiy) 26.09.14 21:19
14. Сергей Отческий (otcheskiy) 26.09.14 21:30
Опубликовал Web-сервис и HTTP-сервис на Демонстрационная конфигурация "Управляемое приложение" (1.0.18.4)
Web-сервис работает нормально.
Но при открытии HTTP-сервиса запрашивает логин/пароль.
IIS 8.5
На публикуемом приложении настроена анонимная проверка подлинности.
Не могу понять от куда надо брать комбинацию логин/пароль ио ОС или из 1С
Прикрепленные файлы:
15. Александр Киричков (GreenDragon) 03.10.14 15:02
(2) AllexSoft, Чтобы костыли вовремя менять на платформенные решения
17. Алексей Белоусов (AllexSoft) 03.10.14 16:40
(15) GreenDragon, а чем тебя стандартные ответы SOAP не устроили ? ну разве что не все совместимо с некоторыми поделками от MS (насколько я слышал)... хз, уже сколько работаю с Web-сервисами.. проблем особых не возникало
18. Александр Киричков (GreenDragon) 08.10.14 17:29
(17) AllexSoft, вот как раз не меня не устраивает, а php-программеров. Вместо громоздкого SOAP, стройненький POST/GET. Т.е. встраивание в уже работающий вэб-ресурс 1С-ки пройдёт гораздо быстрее и проще.
19. Алексей Белоусов (AllexSoft) 08.10.14 17:53
(18) GreenDragon, нуну.. )) во первых по нагрузкам что?) не думаю что по производительности это выйдет быстрее чем тот же SOAP. А по лицензиям что? как выясняется в отличии от Web-сервисов которым нужно всего 1 лицензию по сути - для HTTP-сервера так не прокатит. Так что про встраивание "в уже работающий вэб-ресурс 1С-ки" - это вы загнули
20. Александр Киричков (GreenDragon) 09.10.14 20:15
(19) AllexSoft, это с каких это умозаключений для реализации http запросов от сайта не будет достаточно по сути одной лицензии? По производительности... Ну, смотри... Мне нужно получать с сайта запрос на остаток товара в базе и отправлять в ответ количество. Сдаётся мне, что получить 1 параметр и отправить обратно другой всяко будет шустрее, чем принимать, парсить, отправлять в ответ soap пакеты. И сколько нужно кода накатать php-шнику, чтобы сформировать SOAP пакет, а потом ответный отпарсить? Не нужно забивать гвозди микроскопом, а детскую песочницу наполнять с помощью карьерного самосвала. Для каждой цели нужен свой инструмент. Вот нам и дали ещё один такой.
21. Алексей Белоусов (AllexSoft) 10.10.14 10:09
(20) GreenDragon, в обсуждениях видел что на каждый сеанс нужна лицензия и он не отпускает ее пока сеанс не завершен (то есть пока юзер не закроет страницу) - хотя чувствуется мне что можно придумать костыль который это будет обходить.
Сдаётся мне, что получить 1 параметр и отправить обратно другой всяко будет шустрее, чем принимать, парсить, отправлять в ответ soap пакеты. И сколько нужно кода накатать php-шнику, чтобы сформировать SOAP пакет, а потом ответный отпарсить?

все это так конечно, быстрее в плане обработки post\get стандартный чем SOAP, но в реальных условиях SOAP используется для синхронизации данных, ну скажем есть табличка на сайте с прайсом которая обновляется из 1С через SOAP, раз в час скажем.. это небольшая нагрузка для 1С. А что будет если вы замените этот механизм запросом цен на post\get от 1С в реальном времени.. а если у вас тысячи посетителей на портале? Правильно.. все будет так тормозить что врагу не пожелаешь.. а табличку с ценами удобнее все же через SOAP передавать, с точки зрения PHP-прогера это 2 строки подключения SoapClient и небольшой цикл просто по строкам ответа (там обычный массив многомерный).. и ничего парсить не надо.. так же есть библеотеки на PHP которые позволяют сразу работать с ответами SOAP через DOM, с ними еще проще )
Кароче HTTP-сервисы на 1С это штука конечно хорошая и нужная, вот только на чем то более менее серьезном не применимая, а для какого-нибудь внутрикорпоративного портала небольшой организации или организации скажем какого то кусочка личного кабинета пользователей (ну скажем моя корзина заказов) может и подойдет.. хотя я тут бы в сторону REST-сервисов от 1С посмотрел бы )
22. Ivan Khorkov (vano-ekt) 10.10.14 11:35
(21) да почему внутрикорпоративная... понятно, что интернет-магазин никто писать не будет на 1С :)
но вот разрабам, занимающимся интеграцией 1С<->web, жизнь очень даже упрощается. Генерация контента - как в моей соседней ветке - это чистой воды провокация :) Но вот, скажем, обновление таблиц цен/остатков, или там уведомление о новом заказе, платеже - вполне адекватный механизм. Яндекс.деньги кстати имеют тоже инструмент http-уведомлений о новых платежах, и отправляют они их на URL, дак вот, зачем яндексу отправлять это уведомление на сайт(и зачем вообще держать сайт для уведомлений), когда можно его послать сразу в 1С?
23. Алексей Белоусов (AllexSoft) 10.10.14 11:48
(22) vano-ekt, я сам занимаюсь интеграцией web-1C.. и не сказал бы
жизнь очень даже упрощается

просто даже если поверхностно взять, пока не могу вот точно сказать - да, я бы это сделал через новый механизм.. хотя не говорю что механизм лишний, наоборот, для небольших локальных задач - очень даже.. но не более того. как правильно говорили
Для каждой цели нужен свой инструмент. Вот нам и дали ещё один такой.


ПС:
Генерация контента - как в моей соседней ветке - это чистой воды провокация :)

а мне понравилось) жду продолжения
24. Александр Киричков (GreenDragon) 10.10.14 17:28
(21) AllexSoft,
GreenDragon, в обсуждениях видел что на каждый сеанс нужна лицензия и он не отпускает ее пока сеанс не завершен
Сеанс с кем?
25. Алексей Роза (DoctorRoza) 19.10.14 13:22
Спасибо, информация нужная! :)
26. Сергей Валутин (Bacemo) 19.10.14 14:14
Информация кстати. Почитал.
27. Николай (nipil) 28.10.14 14:18
(8) vano-ekt,
Простите, я правильно понимаю?
Должно быть:

Функция СтатусЗаказа(Запрос) Экспорт
Ответ = Новый HTTPСервисОтвет(200);
Ответ.Заголовки.Вставить("Content-Type"..... и.т.д.
28. Димок ддд (ДимокШ) 03.11.14 15:46
Подскажите, возможно кто-то сталкивался:
Создать в базе http-сервис, который должен по переданному URL находить в базе документ и записывать в этот документ комментарий.
http сервис отрабатывает, документ находится, но находясь в модуле HTTP сервиса - получаю ошибку при попытке получить объект документа, например ПКОссылка.ПолучитьОбъект()

т.е. метод ПолучитьОбъект() в этом модуле недоступен... как это можно победить?
29. Ivan Khorkov (vano-ekt) 03.11.14 19:34
(28) ни кода, ни текста ошибки ...
30. Димок ддд (ДимокШ) 03.11.14 20:42
в любой процедуре обработчике http сервиса если добавить строку
об = Документы.Событие.СоздатьДокумент();

то браузер выдаст ошибку:
Ошибка инициализации модуля: Документ.ПКО
31. Макс Зеленский (mzelensky) 12.11.14 10:31
Интересные материалы. Автору +
32. {ÐƦǑƝȊ} mx (dour-dead) 02.12.14 14:04
Долго думал, из-за чего возникает ошибка )))

"Неверная сигнатура процедуры обработчика"

Оказывается нужен параметр в функцию обработчика.

Функция ЛюбойURLФорма(Запрос)
	
	Возврат Ответы.ПолучитьОтветФормуСтатусЗаказа(Запрос);

КонецФункции
...Показать Скрыть
33. Black Romeo (Black Romeo) 19.01.15 19:49
Статья очень интересная, автору +

При попытке поднять у себя HTTP сервис, почему-то не работает.
В виртуальной машине 2008r2, web server IIS, платформа 8.3.5.1383
База клиент-серверная, сервер приложения 32 битный.

При подключении по строке http://localhost/web/hs/list/login/password как на скриншоте.
Логика приложения чуть чуть другая, но тоже два параметра в URL ссылке.

Кстати, а можно ли как-нибудь отладить http-сервис? я проставил везде код записи в журнал регистрации, но там пусто...
Прикрепленные файлы:
34. Ivan Khorkov (vano-ekt) 19.01.15 20:31
(33) для отладки укажите в файле default.vrd
<debug enable="true" url="tcp://localhost"/>
перед закрывающим тегом </point>
ну и в конфигураторе в настройках подключения отладчика поставьте флаг "http-сервисы"
потом рестарт веб-сервер
35. Ivan Khorkov (vano-ekt) 19.01.15 20:36
(33) относительно ошибки - какой-то косяк с публикацией, с IIS не запускал, поэтому по публикации не подскажу,
апаче ближе и внятней (для меня) :-)
покурите мануалы тут http://its.1c.ru/db/v83doc#bookmark:adm:TI000000248
36. Black Romeo (Black Romeo) 20.01.15 20:43
+ (33) разобрался со своей ошибкой
1) Создал на сервере пользователя WEB с паролем, с группами по умолчанию ("Пользователи");
2) На сервере IIS, в "Проверке подлинности", в удостоверение пользователя анонимного доступа прописываем пользователя WEB с паролем (скриншот "Снимок1");
3) В базе 1с создал отдельного пользователя, отключил ему авторизацию 1с, оставил авторизацию Windows и прописал пользователя Windows (скриншот "Снимок2");
4) При публикации базы поставил галку "Использовать аутентификацию операционной системы".

Второй момент, я тут в публикации этого не увидел - если в http сервисе предусмотрено 2 параметра, а при переходе по ссылке параметры оставить пустые(например, для списка накладных "http://127.0.0.1/web/hs/list" ), то сервис будет отваливаться с ошибками
Прикрепленные файлы:
37. Евгений Моисеенко (bpc222) 23.01.15 23:45
(14) otcheskiy,

в настройках приложения на IIS (настройка сайта или приложения) укажите от имени какого пользователя ОС будет производиться аутентификация при анонимном обращении. Этого же пользователя ОС свяжите с пользователем в ИБ 1С.
38. Владислав Мороз (vlad.frost) 19.02.15 19:26
(14), (37), возможен вариант авторизации и без привязки пользователя ОС в ИБ. Достаточно в файле default.vrd указать реквизиты в пути к информационной базе в атрибуте элемента point:

<point xmlns="http://v8.1c.ru/8.2/virtual-resource-system"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
base="/_виртуальный_каталог_"
ib="File="C:\_полный_путь_к_информационной_базе_";Usr="_имя_пользователя_";Pwd="_пароль_пользователя_"">
TitanLuchs; adhocprog; BigB; GreenDragon; +4 Ответить 2
39. Pashkaa (Pashkaa) 17.04.15 12:53
(38) Наткнулся еще на вот такой способ раздельной авторизации http://profi1c.ru/products/fba_toolkit/different_authentication_web_service­.html

Но вот вопрос возможна ли раздельная авторизация при использовании http-сервисов ("вход без учетки") и Веб клиентов (вход под учетками 1С) остается открытым.
40. Владислав Мороз (vlad.frost) 17.04.15 16:09
(39) В вашем случае достаточно применить небольшую смекалку и сделать отдельные виртуальные каталоги для веб-клиента и для http-службы, каждый со своим файлом default.vrd со своими настройками авторизации.
41. Михаил Абаев (alfaservice) 08.05.15 09:06
Вопрос! здесь представлен вариант подключения к другой базе и вывод информации. А если провернуть в одной базе как быть?
42. Женька Ture (ture) 22.05.15 18:32
https?

Как много смысла в столь короткой фразе!
43. Юрий Лазаренко (TitanLuchs) 29.07.15 15:24
(38) vlad.frost, спасибо, работает. Только имя и пароль должны быть без кавычек, иначе вылетает ошибка разбора XML.
44. Алекс Н (Чарик) 29.07.15 16:17
хорошая статья! были бы еще примеры кода - цены бы ей не было!
45. Алексей (Wi5hMaCTeP) 04.08.15 18:00
Добрый день!
Начал разбираться с темой и наткнулся на грабли:
Есть 2 конфигурации - клиент (мобильное приложение) и сервер (просто чистая конфигурация).
Создал на сервере HTTP сервис, настроил, опубликовал, проверил - все чудесно!
Далее добавил пользователя, создал ему роль с полными правами (дал доступ на метод сервиса) и вот тут пошла трабла - ошибка 403 нет доступа.
Подробнее:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don't have permission to access /http://127.0.0.1/CBTestConf/hs/Service/TestURL/Method on this server.</p>
</body></html>
...Показать Скрыть


Не могу разобраться в чем дело, вот собственно вся процедура вызова из клиента:
Функция ОбменПоHTTPСервисуНаСервере()
	
	Пользователь = "Admin";
	Пароль 		 = "123";
	
	Попытка
		Соединение = Новый HTTPСоединение("127.0.0.1", 80, Пользователь, Пароль);
	Исключение
		Возврат "Ошибка при создании HTTP соединения.";
	КонецПопытки;
	
	ПараметрЗапроса = "1";
	
	HTTPЗапрос = Новый HTTPЗапрос("http://127.0.0.1/CBTestConf/hs/Service/TestURL/Method");
	HTTPЗапрос.УстановитьТелоИзСтроки(ПараметрЗапроса);
	
	Ответ = "";
	
	Попытка
		HTTPОтвет = Соединение.Записать(HTTPЗапрос);
		Ответ     = HTTPОтвет.ПолучитьТелоКакСтроку();
	Исключение
		Возврат "Ошибка при соединении.";
	КонецПопытки;
	
	Возврат Ответ;
КонецФункции
...Показать Скрыть


Конфигурацию уже несколько раз публиковал, Apache 2.2 перезапускал, права повсюду проверял, default.vrd правил (добавлял туда логин с паролем), в общем не знаю куда дальше головой биться :(

В этих же конфигурациях настроен Web сервис, работает все прекрасно. Тоже была проблема после создания пользователя, но решалась дополнительным вводом пароля для WSПрокси.
Тут же нет ничего кроме ИнтернетПрокси, но это отношения к делу не имеет.

Очень прошу помочь!
Заранее спасибо :)
46. Роман Озеряный (rozer) 06.08.15 16:34
47. Алексей (Wi5hMaCTeP) 07.08.15 07:56
Прошу прощения за дурацкий вопрос - сам разобрался :)
В HTTPЗапрос не надо было вставлять адрес сервера, только строку запроса :)
48. Tindir Mindir (tindir) 18.11.15 08:41
отличная статья. В приложении много полезной инфы. Но возник вопрос в ходе своей разработки http-сервисов - каким образом можно реализовать механизм авторизации пользователя? Задним мозгом доходит что необходимо выкинуть сервис по авторизации и если условия авторизации(пароль,логин, ключ) выполнены то выдавать токен генерируемый самой Эской. Но как быть если в разрабатываемый фрон для работы с сервисами из нескольких баз? Скорее всего необходимо реализовать свой сервер авторизации гнать все вызовы с его проверкой? или можно как-то унифицированно работать с этим делом. Задача стоит следующая: веб-АРМ с отчетами для руководителя из нескольких баз (УТ,ЗУП,БП).
49. Дмитрий Жиляков (Zhilyakovdr) 15.01.16 11:18
(39) Pashkaa, Добрый день!
1С "съедает" basic авторизацию например при обращении из jQuery:

$.ajax({
crossDomain: true,
type: "GET",
contentType: "application/json;charset=utf-8",
url: "http://localhost/base/hs/test/Users",
dataType: "json",
beforeSend: function(xhr) {
xhr.setRequestHeader('Authorization', "Basic " + window.btoa('User', 'Pass'));
},
success: function (queryResult) {
$("#test").text(queryResult.test);
},
error: function (xhr, ajaxOptions, thrownError) {
$("#test").text("ХХХ");

}
});
50. kiruha Дронов (kiruha) 05.02.16 12:07
А есть инфа как подключать оптимально таблицы стилей и картинки ?
Как то можно по простому - через каталог на вебсервере ? (про Base64 видел способ). Кидаю файлы картинок в каталог публикации - не видны