如何允许 Access Control Header 跨域访问远程 API?

Posted

技术标签:

【中文标题】如何允许 Access Control Header 跨域访问远程 API?【英文标题】:How to allow Access Control Header to access a remote API in cross-domain? 【发布时间】:2015-10-11 01:29:15 【问题描述】:

我正在开发一个移动应用程序,我通过远程 API 获取数据,但我的 javascript 程序返回以下错误:

XMLHttpRequest 无法加载 http://na.lolesports.com/api/standings.json?tournamentId=225。不 请求中存在“Access-Control-Allow-Origin”标头 资源。原产地...因此是不允许的 访问。

【问题讨论】:

如果我没记错的话,这是服务器端没有将正确的跨域标头放在 HTTP 响应上。 如果 API 提供 JSONP 你应该使用它 如果您在浏览器中输入此 URL,将获得响应:na.lolesports.com:80/api/… 也使用此处提供的 Chrome 扩展程序:google.fr/… 使用此 Chrome 扩展程序在本地完美运行,我只是想做没有扩展名也是一样。 @dalu 你有这个案例的例子吗?我不确定他们是否提供 Json。 @Okazari 那么我该如何解决呢? 【参考方案1】:

您无能为力,必须更改 API 的 CORS 设置。事实上,他们特别不允许跨站点来源,因为他们不想允许第三方访问他们的 API:

https://developer.riotgames.com/discussion/community-discussion/show/GokMZKKl

【讨论】:

仍然可以在服务器端请求吗?只是不是来自 javascript。

以上是关于如何允许 Access Control Header 跨域访问远程 API?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过web.config文件中的Access-Control-Allow-Origin允许多个源域?

如何通过在 IIS 8 中使用“Access-Control-Allow-Origin”来允许多个域

我该如何解决:在预检响应中 Access-Control-Allow-Headers 不允许请求标头字段 x-access-token?

如何使用 reactjs 和 webpack 允许 Access-Control-Allow-Origin?

Zend Framework 2 - 如何允许杀死CORS策略:没有'Access-Control-Allow-Origin'

如何允许 Access Control Header 跨域访问远程 API?