如何允许跨域
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何允许跨域相关的知识,希望对你有一定的参考价值。
跨域有三种解决办法,两种是需要后台处理的,一个前端就能处理的。
让后台在接口文件的请求头里加上“Access-Control-Allow-Origin
。”
反向代理。这玩意也是后台处理的。
jsonp,这个就是前端处理的了,利用src这个属性,src是可以跨域的,iframe中的src,利用iframe获取到内容后再用js处理,或者动态创建script,利用script中的src,在src中输入请求的地址,加上?key=value&key=value&callback=foo(你自己写的回调函数的名称),
如何允许 Access Control Header 跨域访问远程 API?
【中文标题】如何允许 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。以上是关于如何允许跨域的主要内容,如果未能解决你的问题,请参考以下文章