美文网首页
如何处理JS跨域问题

如何处理JS跨域问题

作者: 邢看山 | 来源:发表于2017-02-28 21:48 被阅读0次

跨域

当两个域名地址的协议、子域名、主域名、端口号中任意一个不相同时,都算作不同域。不同域间相互请求资源,即为“跨域”。

禁止跨域

出于安全方面的考虑,Javascript使用同源策略,不允许跨域调用其它页面的对象。

解决办法

1. 代理

在同域名的web服务器端创建一个代理。
在A地的web服务器的后台调用B地服务器的服务,然后再把响应结果返回给前端,这样前端调用A地同域名的服务就和调用B地的服务效果相同了。

2. JSONP

JSONP可用于解决主流浏览器的跨域GET请求。
原理:
www.aaa.com中:

<script>
     function jsonp(json) {
        //do something
        alert(json["name"]);
    }
</script>
<script src="http://www.bbb.com/jsonp.js"></script>

www.bbb.com页面中:

jsonp({"name":"哪吒","age":7});

<script>标签可以跨域获取文件。
该方法不支持POST请求。

3. XHR2

HTML5提供的XMLHttpRequest Level2已经实现了跨域访问以及其他的一些新功能。
不支持IE10以下版本
方法:
在服务器端做一些改造:

header('Access-Control-Allow-Origin:*'); 
//符号*表示所有域都可以访问,也可以设为特定域名,即仅允许设定的域名访问。
header('Access-Control-Allow-Methods:POST,GET');

(完)

相关文章

网友评论

      本文标题:如何处理JS跨域问题

      本文链接:https://www.haomeiwen.com/subject/trefgttx.html