3

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

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

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

4

2 回答 2

5

从: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 请求。

于 2012-05-01T14:37:28.080 回答
1

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

于 2012-05-01T14:35:22.443 回答