如何允许跨域

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(你自己写的回调函数的名称),

参考技术A 这是给你限制了,你自己处理不了,或者是你当前用户的权限不够,视频如果有会员或者收费的话,可能要付费。

如何允许 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。

以上是关于如何允许跨域的主要内容,如果未能解决你的问题,请参考以下文章

如何保护跨域请求;允许第三个网站发布数据

您如何禁止同源访问但允许严格的跨域访问? [复制]

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

如何通过授权信息选择性地允许跨域资源共享?

JS 跨域认识及如何解决

如何解决前端跨域问题?