JSON с Padding работает путем добавления элемента скрипта на страницу с атрибутом src , указывающим на URL-адрес веб-службы.Затем веб-служба возвращает сценарий, содержащий данные, заключенные в функцию обратного вызова, которая выполняется, когда сценарий завершает анализ.Это не столько JSON (для начала это даже необязательно должен быть действительный JSON), сколько обычный JavaScript.
Нет способа изменить заголовки, отправленные для элемента script, добавленного на вашу страницу., к несчастью.Единственное, что вы можете сделать, это проверить совместимый метод извлечения данных, совместимый с различными источниками, например:
XMLHttpRequest Level 2 - Chrome, Safari 4+,Firefox 3.5+, Opera
// Is XMLHttpRequest Level 2 supported?
if ("withCredentials" in new XMLHttpRequest())
XDomainRequest - для IE 8, IE 9
// Is XDomainRequest supported?
if ("XDomainRequest" in window)
Itбыло бы неплохо проверить эти реализации, если они существуют, и использовать их соответствующим образом, возвращаясь к стандартному JSONP для неподдерживаемых или более старых браузеров.
Также возможно (но маловероятно, учитывая, что это высокий профиль), что веб-сервис не настроен для разрешения запросов между источниками, поэтому вам все равно придется использовать JSONP в случае сбоя запроса.См. Также Обмен ресурсами между источниками .