Это зависит от того, соблюдает ли API Bing стандартный метод ?callback=function
для определения обратных вызовов JSONP, но если это так, то это должна делать упрощенная версия функции Search()
:
// Bing API 2.0 code sample demonstrating the use of the
// Spell SourceType over the JSON Protocol.
function Search()
{
var requestStr = "http://api.bing.net/json.aspx?"
// Common request fields (required)
+ "AppId=" + AppId
+ "&Query=Mispeling words is a common ocurrence."
+ "&Sources=Spell"
// Common request fields (optional)
+ "&Version=2.0"
+ "&Market=en-us"
+ "&Options=EnableHighlighting"
$.getJSON(requestStr, SearchCompleted);
}
Имейте в виду, что ни один из подходов не вызывает GET напрямую, как вы могли бы использовать для запросов AJAX на локальный сервер с использованием XMLHttpRequest.
Чтобы обойти междоменное ограничение для XHR, JSONP работает, внедряя новый элемент сценария в ваш документ, который затем заставляет браузер загрузить (через GET) и выполнить этот удаленный сценарий. Содержимое этого удаленного скрипта представляет собой один вызов функции для функции обратного вызова со всей полезной нагрузкой JSON в качестве ее параметра.
Если это не сработает, в том числе те опции обратного вызова, специфичные для Bing, должны нормально работать вместе с jQuery:
// Bing API 2.0 code sample demonstrating the use of the
// Spell SourceType over the JSON Protocol.
function Search()
{
var requestStr = "http://api.bing.net/json.aspx?"
// Common request fields (required)
+ "AppId=" + AppId
+ "&Query=Mispeling words is a common ocurrence."
+ "&Sources=Spell"
// Common request fields (optional)
+ "&Version=2.0"
+ "&Market=en-us"
+ "&Options=EnableHighlighting"
// JSON-specific request fields (optional)
+ "&JsonType=callback"
+ "&JsonCallback=SearchCompleted";
$.getJSON(requestStr);
}
Имейте в виду, что на данный момент (и несколько раньше) вы на самом деле совсем не используете сам jQuery. Даже если $.getJSON()
или $.ajax()
или $.get()
похоже, что они делают что-то более мощное, чем пример MSDN, в этом случае jQuery собирается сделать то же самое (внедрить элемент скрипта с указанным src
в requestStr
).