是否有 jQuery 解决方案在可用时使用 CORS,并在带有 niether 的浏览器上回退到 MSIE 上的 XDomainRequest 和 JSONP?

Posted

技术标签:

【中文标题】是否有 jQuery 解决方案在可用时使用 CORS,并在带有 niether 的浏览器上回退到 MSIE 上的 XDomainRequest 和 JSONP?【英文标题】:Is there a jQuery solution that uses CORS when available and falls back to XDomainRequest on MSIE and JSONP on browsers with niether? 【发布时间】:2012-01-31 02:26:33 【问题描述】:

我傻到相信所有现代浏览器都支持CORS (Cross-Origin Resource Sharing)。

当我的玩具 javascript 工具不能在 IE9 或 Opera 上运行时,我发现前者只支持 CORSXDomainRequest,而 jQuery 似乎不支持。 Opera 根本不支持CORS

现在 jQuery 有一个抽象接口,可以执行正常的相同域 AJAX 查询、CORS 查询,甚至 JSONP 查询。

此界面是否有扩展,即使在 XDomainRequest 下也能正常工作,并在 CORS 不可用时回退到 JSONP

【问题讨论】:

【参考方案1】:

这是一个在 JQuery 中支持 XDomainRequest 的插件:

https://github.com/jaubourg/ajaxHooks/blob/master/src/xdr.js

还有一个jQuery特性请求添加这个特性:

http://bugs.jquery.com/ticket/8283

请注意,错误报告说 IE9 中的插件可能存在问题,所以 YMMV。考虑到插件的存在是为了完成这项工作,它最终被关闭了。

【讨论】:

【参考方案2】:

看看xReader:

<script src="http://kincrew.github.com/xReader/xReader.full.js"></script> 
<script type="text/javascript"> 
xReader("http://www.yahoo.com/", function(data)  
    alert(data.content); 
)
</script>

很简单!

【讨论】:

快速玩过xReader后,我喜欢它。但在使用它读取搜索词的谷歌点击次数六次后,谷歌自动阻止了它。如果 Google 可以,我猜其他网站也可以。 @hippietrail ,我想检查一下。你能告诉我使用的是哪个网址吗? 这是一个带有一些代码的 jsfiddle。它应该可以在您尝试的前几次中起作用,然后您将开始为 Google 获得 null:jsfiddle.net/hippietrail/fS6n2/2 @hippietrail 我会在几天内修复。似乎 xReader 必须处理更多详细信息,例如 ua。 (推荐人、UA 信息、Cookie) 华尔街日报的示例也返回 undefined。

以上是关于是否有 jQuery 解决方案在可用时使用 CORS,并在带有 niether 的浏览器上回退到 MSIE 上的 XDomainRequest 和 JSONP?的主要内容,如果未能解决你的问题,请参考以下文章

5.4.1 - [Firebase/Core][I-COR000022] Firebase 分析不可用

R使用笔记:相关系数:cor.test();corr.test();rcorr()

是否可以使用 JavaScript/jQuery 解决这种情况? [复制]

在 jQuery 循环中隐藏/显示分页器

使用 jQuery 在悬停/退出时展开/缩小 div

Jquery中的自学选择列表