Я пытаюсь сделать запрос XMLHttpRequest из локального файла (file: //), используя JQuery.ajax для чего-то на http: //, и из того, что я вижу, выглядит запросвыход (обратный вызов успеха вызывается, и Firebug показывает запрос), но ответа просто не возвращается.
Вот в основном то, что я делаю:
$.ajax({
url: "https://stackoverflow.com/users/63736/bruce-van-der-kooij",
dataType: "text",
success: function(text) {
alert(text)
}
})
Обратите внимание, что яиспользуя datatype: "text"
, но это не имеет значения, что вы используете.
Это покажет пустое предупреждение.
Теперь, если бы я должен был догадаться, я должен сказать, что это что-то имеетделать с той же политикой происхождения, но я не получаю типичное NS_ERROR_DOM_SECURITY_ERR
исключение (в консоли ошибок ничего нет).
Так есть ли у кого-нибудь объяснение того, что происходит?
Связано
ОБНОВЛЕНИЕ:
Итак, я наткнулся на статью июля 2009 года на hacks.mozilla.org , которая, кажется, объясняет, что яидет.Очевидно, что Firefox> = 3.5 реализует спецификацию общего доступа к ресурсам (CORS) , которая предоставляет механизм, позволяющий вам делать межсайтовые запросы.Что происходит в этом случае, объясняется в статье:
В Firefox 3.5 и Safari 4 межсайтовый XMLHttpRequest не сможет успешно получить ресурс, если сервер не предоставит соответствующие заголовки CORS.(в частности, заголовок Access-Control-Allow-Origin) обратно с ресурсом, хотя запрос будет выполнен.
Обратите внимание, что в моем случае запрос отправляется с заголовком Origin: null
и200 OK
ответ возвращается.Однако сервер не отправляет обратно соответствующие заголовки, поэтому тело ответа не получается.
См. Также: