当前位置: 首页 > 面试题库 >

跨域Ajax请求在Opera和IE9中不起作用?

葛阳
2023-03-14
问题内容
我正在使用此页面 -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中工作?


问题答案:

有关详细信息,请参见whencaniuse。

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

Opera根本不支持它。

如果您需要Opera中的跨域Ajax,请使用JSON-P。



 类似资料:
  • 问题内容: 我正在通过jQuery的$ .ajax函数使用的第三方API上调用POST。但是,当我拨打电话时,出现以下错误: 我从这篇文章中看到这可能是Webkit的错误,所以我在Firefox中尝试了此操作(我正在使用Chrome开发),并且得到了相同的结果。 在这篇文章中,我还尝试通过将$.ajax函数的属性设置为并将设置为来使用jsonp。但是,这导致了500个内部服务器错误。 当我使用–d

  • 问题内容: 跨域AJAX POST请求在Web浏览器(包括手机上的浏览器)上可以很好地工作,但不适用于使用以下工具构建的本机应用程序 我创建了一个登录表单,用户必须输入他们的登录凭据,然后由heroku上托管的服务器对其进行验证,如果输入了有效的凭据,则返回json 。 我的Ajax脚本: 解决此问题所采取的步骤: 域白名单 -config.xml 告诉jQuery允许跨域 要么 禁用缓存 任何帮

  • 问题内容: 我正在编写ajax Web应用程序,但是由于任何原因,当我在Internet Explorer 9(IE9)中对内部数据服务执行GET时,它都无法正常工作。同样的调用在Chrome,Firefox和Safari中也可以正常工作。我正在使用本地主机Web服务器(沼泽)进行开发,并且正在与要尝试的数据服务在同一网络上进行开发。我正在使用Jquery 1.8.1(我返回了几个版本,但仍然看到

  • 问题内容: 我正在为Android创建一个PhoneGap应用。为了从(远程)服务器获取数据,我使用jQuery的$ .ajax()函数进行了REST调用。您必须了解几件事: 通话类型必须为POST 服务器需要JSON数据(至少用户名和密码) 服务器发回JSON数据 代码: 但是,这不起作用。当我使用Firebug查看服务器响应时,什么都没有。使用TcpTrace,我可以看到请求的标头。除了期望的

  • 问题内容: 我有一个脚本,可以在按下当前元素时添加一个输入字段元素。当我使用innerHTML时,它将替换当前内容,这不是我想要的。所以我想appendChild应该添加而不是替换,但是它不起作用。这是我的剧本 和我的HTML内容。 还有我的addfile.php文件。 有输入吗?同样,innerHTML可以工作,appendChild不能工作。谢谢。 问题答案: parent.appendChi

  • 问题内容: 在我的项目中,我需要允许其他人向我的脚本发送ajax请求。因此,外部请求可能来自其他网站和域,也可能来自浏览器扩展。 我在脚本顶部仅添加了以下两行,以使它们能够做到: 现在我的问题是:这里是否遗漏了任何安全方面的考虑?这个简单的解决方案会带来严重的问题吗? 如果是这样,什么是更好的解决方案? 感谢您的回复。 问题答案: 如上所述,任何人都可以随时向您的页面发送请求:因此,您需要考虑的主