Вы ответили на свой вопрос.getJSON должен иметь возможность использовать JSONP, который является междоменным запросом, встроенным в блок скрипта, и думать, что
<script src="http://someforeigndomain.com/doc.json"></script>
Что сервер действительно возвращает, это
callback({some: "relevant", json: "object"});
.код, который
function callback(obj) {
//do something with json.
}
Jquery в этом случае выполняет всю тяжелую работу по привязке обратного вызова к тому, который вы указали в своем конфигурационном объекте getJSON.Но я надеюсь, что это поможет вам понять, что происходит с getJSON при доступе к данным за пределами вашего домена.Это не ДЕЙСТВИТЕЛЬНО ajax.
Точнее, причина, по которой вы испытываете ошибку с ajax, заключается в том, что браузер реализует защиту, аналогичную флэш-памяти, которая запрещает междоменные сценарии в качестве механизма безопасности.Как и в случае с crossdomain.xml, это можно обойти, если вы владеете сервером назначения, внедрив CORS, это означает прослушивание запросов с помощью метода OPTION и отправку обратно заголовков, которые разрешают исходный домен.Это в основном помогает домену бороться с XSS, который в противном случае мог бы вызвать DDOS или СПАМ, при этом позволяя доверенным внешним сайтам взаимодействовать с его веб-сервисами.Надеюсь, это поможет.
Для получения информации о jQuery-части вашего вопроса просто прочитайте $ .getJSON из Jquery Docs, это довольно просто.