JavaScript – 跨源Ajax请求在Opera和IE9中不起作用?

我正在使用此页面 – 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中,执行XHR对象的错误处理程序,并传入此错误对象:

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

您可以看到,此错误对象不会显示很多信息.

如何使其在IE9和Opera中工作?

最佳答案
参见cors at whencaniuse的条目.

对于Internet Explorer CORS是“使用XDomainRequest对象在IE8和IE9中有所支持”,因此您需要使用替代对象来使用它.

歌剧根本不支持它.

如果在Opera中需要跨域Ajax,则使用JSON-P.

转载注明原文:JavaScript – 跨源Ajax请求在Opera和IE9中不起作用? - 代码日志