我正在构建一个 AJAX 应用程序来查询 OData 端点。我一直在使用 Netflix OData 提要进行一些测试,发现了一些我没有得到的东西:
当我向 url 发出 .ajax() 请求时(例如 http://odata.netflix.com/v1/Catalog/Titles ),我收到错误消息:“Access-Control-Allow-Origin 不允许 Origin null”。但是,当我将相同的 url 放入浏览器时,请求会通过并得到响应。
我没有理解的根本区别是什么?浏览器如何绕过同源策略?
最佳答案
我还为 Netflix 的 OData 使用了 JSONP。它似乎适合我的应用程序。我已经把代码和解释贴在我的博客下了http://bit.ly/95HXLM
下面还有一些示例片段:
49. // Make JSONP call to Netflix
50. $.ajax({
51. dataType: "jsonp",
52. url: query,
53. jsonpCallback: "callback",
54. success: callback
55. });
56. });
57.
58. function callback(result) {
59. // unwrap result
60. var movies = result.d.results;
61.
62. $("#movieTemplateContainer").empty();
63. $("#movieTemplate").tmpl(movies).appendTo("#movieTemplateContainer");
64. }
关于javascript - jQuery 与浏览器的同源策略(使用 OData),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4080655/