【发布时间】:2014-09-06 16:52:04
【问题描述】:
我正在尝试在我的 AngularJS 应用程序中向 rotten tomatoes API 发出一个简单的 http GET 请求,但是当我运行它时,我在浏览器控制台中得到了这个:
跨域请求被阻止:同源策略不允许读取 远程资源在 http://api.rottentomatoes.com/api/public/v1.0/movies/770672122.json?apikey=[myApiKey]。 这可以通过将资源移动到同一域或 启用 CORS。
注意:“[myApiKey]”已替换为我的实际密钥...
我已经在 Chrome 和 Firefox 上试过了,虽然我知道在启动 Chrome 时可以附加一些参数来禁用它,但普通用户不知道如何做到这一点,所以从浏览器兼容性来看选项对我不起作用。我还尝试从我的桌面以及本地 Tomcat 实例运行我的应用程序。
所以我发现这可以通过启用 CORS 来解决。现在我该怎么做?显然我不能接触烂番茄服务器,所以这必须从我这边 - 客户端来完成。
【问题讨论】:
-
需要在服务器上启用CORS。您可能需要为此 API 编写一些代理。
-
根据这个帖子developer.rottentomatoes.com/forum/read/129615 有人已经请求了这个功能......但他们似乎没有回应这个请求。
-
从服务器端调用api并从您的客户端访问服务器端
-
所以基本上就目前而言,没有人可以为烂番茄 API 创建 Angular 客户端?他们已经 3 年没有响应功能请求了,我猜他们永远不会启用 CORS。
-
看看能不能发出 JSONP 请求 stackoverflow.com/questions/19916362/… 。 API 必须支持这种情况发生
标签: javascript json angularjs http cors