"Отказано в доступе" при попытке междоменного подключения к файлу JSON

Я получаю ошибки доступа при попытке получить доступ к данным JSON на сервере, который не находится в моем домене. Я пытался активировать междоменные возможности jQuery.support.cors = true; но все еще есть та же проблема.

Затем я нашел этот пример страницы и эту статью и полный надежд, я попытался пойти на XDomainRequest вместо XmlHttpRequest, Тем не менее, я получаю ту же ошибку.

Когда я набираю адрес в окне браузера, я получаю данные и вижу их на своем экране. Что я могу изменить / искать, чтобы это работало? (Я попробовал каждый пример, который мог придумать, и теперь я рисую пустым.)

Я выполняю код ниже.

var xdr = new XDomainRequest();
xdr.onload = function () { alert(xdr.responseText); }
xdr.open("GET", "http://blopp.json");
xdr.send();

Я не смогу попросить своих пользователей что-либо активировать. Более того, я мог бы ожидать, что многие из них будут на доменах с высокими ограничениями (и 90%+ будут на IE, по крайней мере, версии 8, я надеюсь).

РЕДАКТИРОВАТЬ:

Заголовки следующие.

Заголовки запроса:

Код состояния:200 ОК
Запрос заголовков разобран
GET /AppositelabRestService/api/EnvelopeTemplate/12345 HTTP/1.1
Ведущий: appositech.hosterspace.com
Подключение: keep-alive
Cache-Control: max-age = 0
Пользователь-агент: Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.4 (KHTML, как Gecko)
Chrome / 22.0.1229.94 Safari / 537.4
Принять: текст / html, приложение /xhtml+xml, приложение /xml;q=0,9,/; q = 0,8
Accept-Encoding: gzip, deflate, sdch
Accept-Language: sv, en-US; q = 0,8,en;q=0,6
Accept-Charset: ISO-8859-1, utf-8; q = 0,7,*;q=0,3

Заголовки ответа HTTP / 1.1 200 OK
Cache-Control: без кеша
Прагма: без кеша
Тип контента: application/xml; кодировка = UTF-8
Истекает: -1
Сервер: Microsoft-IIS / 7.5
X-AspNet-версия: 4.0.30319
X-Powered-By: ASP.NET
Дата: ср, 07 ноя 2012 09:53:19 GMT
Длина контента: 394

1 ответ

Решение

Сервер должен явно разрешить это, отправив заголовок CORS (Cross-Origin Resource Sharing), такой как:

Access-Control-Allow-Origin: *

В противном случае применяется политика того же происхождения, и вы не можете этого сделать.

Кстати, flash использует crossdomain.xml, поэтому, если такой файл размещен на сервере, вы можете сделать запрос через flash.

К сожалению, http://appositech.hosterspace.com/crossdomain.xml составляет 404.

Другие вопросы по тегам