Запросы Ajax перекрестного происхождения не работают в Opera и IE9? - PullRequest
14 голосов
/ 05 августа 2011

Я использую эту страницу - http://ecmazing.com/cors.html - для отправки Ajax-запроса к этому источнику: http://hacheck.tel.fer.hr/xml.pl

Он работает в Chrome, Safari и Firefox, но не в IE9 и Opera.

код:

var pdata = {'textarea': 'test'};

$.post('http://hacheck.tel.fer.hr/xml.pl', pdata, function(data, status, xhr) {
    output.value = xhr.responseText;
});

(ожидаемый результат - строка кода XML.)

Убедитесь сами: http://ecmazing.com/cors.html

В IE9 и Opera выполняется обработчик error объекта XHR, и этот объект ошибки передается в:

{
    readyState: 4,
    status: 0,
    statusText: 'error'
}

Как видите, этот объект ошибки не раскрывает много информации.

Как я могу заставить его работать в IE9 и Opera?

Ответы [ 3 ]

9 голосов
/ 05 августа 2011

См. Запись для cors в когдаcaniuse .

. Для Internet Explorer CORS "несколько поддерживается в IE8 и IE9 с использованием объекта XDomainRequest", поэтому вам нужно использовать альтернативный объект дляиспользуйте его.

Opera просто не поддерживает его.

Если вам нужен междоменный Ajax в Opera, используйте JSON-P.

6 голосов
/ 07 декабря 2011

Я так расстроился, пытаясь использовать CORS с IE и jQuery, я написал библиотеку , чтобы сгладить наихудшие части.от того, чтобы сделать их браузеры должным образом CORS-совместимыми за семь коротких лет, в которые они должны были это сделать, но я все еще предпочитаю CORS JSONP, что, честно говоря, является хаком.

0 голосов
/ 26 мая 2012
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...