使用 jQuery.support.cors 的跨域脚本 = true

Cross-domain scripting using jQuery.support.cors = true

本文关键字:脚本 true jQuery support cors 使用      更新时间:2023-09-26

我一直在研究各种展示跨域脚本的示例,并遇到了一个我想使用 jQuery.support.cors = true 以及 Ajax 调用从 Web 服务检索数据的情况。 我有一个使用 jsonp 工作的 Web 服务示例,我认为添加 jQuery.support.cors = true 很简单,将 dataType 更改为"json",然后删除 &$callback=?从网址。 我可以看到从网络服务(Netflix)返回的响应具有预期数据,但是当ajax调用返回时,它会执行错误函数而不是成功。

我最初认为也许网络服务没有正确的 cors 标头,但我倾向于认为收到的格式化响应等同于存在的标头。 也许我没有正确格式化成功/错误函数,并且 Ajax 结果不喜欢这样。

这是它试图使用jQuery.support.cors无济于事的小提琴。

来自: curl -i "http://odata.netflix.com/v2/Catalog/Titles?$select=Name,Runtime,ReleaseYear&$filter=dark&$orderby=Name&$format=json"

Cache-Control: private
Content-Length: 3386076
Content-Type: application/atom+xml;charset=utf-8
Expires: Tue, 01 May 2012 14:37:06 GMT
Vary: *
Server: Microsoft-IIS/7.0
DataServiceVersion: 2.0;
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Tue, 01 May 2012 14:36:37 GMT

没有与 CORS 相关的标头。Netflix 不允许 CORS 请求。

当然,在这个例子中,Netflix会阻止任何来自自己服务器之外的内容。