是否有 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 上运行时,我发现前者只支持 CORS
到 XDomainRequest
,而 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()