Анализ XML-ответа - PullRequest
       8

Анализ XML-ответа

1 голос
/ 22 июля 2010

Извините, если мой вопрос несколько повторяется, но я не нашел ответа на свой вопрос, поэтому я публикую его здесь.

Итак, вот этот URL, который я использую для создания токена безопасности:

api.sandbox.inrix.com / Traffic / Inrix.ashx? Action = GetSecurityToken & vendorId = 1043016094 & consumerId = 94ce0781-b32f-4da5-b80b-8ca00cfb2194

Ответ ввода вышеуказанного URL-адреса вБраузер - это дерево XML, отображаемое в браузере. Мне нужно извлечь данные в тегах «AuthToken».Я написал код на JavaScript, который извлекает данные из тегов из XML-файла, и вместо указания пути к XML-файлу я передал ему вышеуказанный URL-адрес.Тем не менее, я получаю оповещение с сообщением:

Доступ к ограниченному URI запрещен.

Есть предложения?

Спасибо.

1 Ответ

1 голос
/ 22 июля 2010

Функция безопасности всех браузеров не позволяет отправлять запросы XMLHttp другим доменам.Это называется Одинаковая политика происхождения .Есть несколько способов обойти ту же политику происхождения,

1.Предоставьте прокси для службы, используя язык на стороне сервера.
Обычно вы будете отправлять запросы непосредственно в веб-службу, которая, в свою очередь, будет возвращать ответ, например:

  ╒═══════════════════╕   ──────────────>   ╒═══════════════════╕  
  │ Client/Javascript │                     │ Server/WebService │
  ╘═══════════════════╛   <──────────────   ╘═══════════════════╛  

Прокси-сервер включает в себя написание серверного скрипта для посредника:

 ╒═══════════════════╕ ────> ╒════════════════════╕ ────> ╒═══════════════════╕  
 │ Client/Javascript │       │ Same domain server │       │ Server/WebService |
 ╘═══════════════════╛ <──── ╘════════════════════╛ <──── ╘═══════════════════╛  

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

2.Проверьте, предлагает ли сервис формат данных JSONP .
JSONP работает путем добавления элемента script на текущую страницу с атрибутом src , указывающим на сетьоказание услуг.Веб-сервис возвращает ответ в виде вызова функции JavaScript с данными в литерале объекта JavaScript, который передается в качестве аргумента функции.Все, что вам нужно сделать, - это предварительно определить эту функцию, чтобы при завершении запроса скрипта / веб-службы ваша предопределенная функция вызывалась с данными, чтобы вы могли ее обработать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...