2015-04-22 3 views
0

Я просто отлаживал что-то, и я заметил, что всякий раз, когда я вызываю веб-сервис с $ .getJson из моего плагина, URL-адрес webservice получает добавленный тег скрипта в заголовке html для разделения секунд и затем снова исчезает. Тег script также имеет свойство async.

Это нормальное поведение?

$.getJSON(options.url, function(data) { 
       self.Address = data; 
       self.AddressWSCallback(); 
      }); 
+0

Это вызов перекрестного домена? url == cross domain? – Amir

+0

Да, но я добавляю {url: url + "? Callback =?"} К url – StevieB

+0

Должен ли я добавить jsonp к этому? – StevieB

ответ

0

Согласно JQuery Cookbook Коди Линдли

Если запрос является кросс-домен, JQuery будет автоматически обработать этот запрос как JSONP и заполнить соответствующее имя функции обратного вызова. Это также означает, что jQuery инициирует запрос, вставив тег в документ вместо использования объекта XMLHttpRequest.

Cross-Domain requests in javascript JSONP полагается на то, что теги могут иметь источники, исходящие из разных источников. Когда браузер анализирует тег, он будет получать содержимое сценария (находясь в любом источнике) и выполнять его в контексте текущей страницы. Обычно служба возвращает HTML или некоторые данные, представленные в формате данных, таком как XML или JSON. Однако, когда запрос поступает на сервер с поддержкой JSONP, он возвращает блок сценария, который выполняет функцию обратного вызова, указанную вызывающей страницей, и передает фактические данные в качестве аргумента.

+0

Так что я ничего не могу там сделать, это прекрасно? Вызов webservice - это кросс-домен, и я добавляю параметр обратного вызова к URL-адресу – StevieB

+0

Он должен выполнить обратный вызов по исходной странице. См. Мой обновленный ответ. – Amir

+0

Не знаете, что вы имеете в виду, не могли бы вы привести пример? – StevieB

Смежные вопросы