一文搞懂│什么是跨域?如何解决跨域?
🎈 什么是跨域
域: 是指浏览器不能执行其他网站的脚本
跨域: 它是由浏览器的 同源策略 造成的,是浏览器对
JavaScript
实施的安全限制,所谓同源(即指在同一个域)就是两个页面具有相同的协议protocol
,主机host
和端口号port
则就会造成 跨域
🎈 跨域场景
场景的跨域场景有哪些,请参考下表
解决跨域的四种方式
nginx 的反向代理
使用
nginx
反向代理实现跨域,是最简单的跨域方式只需要修改
nginx
的配置即可解决跨域问题,支持所有浏览器,支持session
,不需要修改任何代码,并且不会影响服务器性能
jsonp 请求
jsonp
是服务器与客户端跨源通信的常用方法。最大特点就是简单适用,兼容性好兼容低版本IE
,缺点是只支持get
请求,不支持post
请求原理时网页通过添加一个
<script>
元素,向服务器请求json
数据,服务器收到请求后,将数据放在一个指定名字的回调函数的参数位置传回来
后端语言代理
可以通过一种没有跨域限制的语言中转一下,通过后端语言去请求资源,然后再返回数据
比如
http://www.autofelix.cn
需要调用http://api.autofelix.cn/userinfo
去获取用户数据,因为子域名不同,会有跨域限制可以先请求
http://www.autofelix.cn
下的php
文件,比如http://www.autofelix.cn/api.php
,然后再通过该php
文件返回数据
后端语言的设置
主要通过后端语言主动设置跨域请求,这里以
php
作为案例
版权声明: 本文为 InfoQ 作者【极客飞兔】的原创文章。
原文链接:【http://xie.infoq.cn/article/05852f28fedfe5c999d2d70bf】。未经作者许可,禁止转载。
评论 (1 条评论)