解决跨域的方法

什么是跨域?

跨域指的是浏览器不能执行其他网站的脚本,它是由浏览器的同源策略造成的,是浏览器对javascript施加的安全限制
同源策略: 是指协议、域名、端口都相同,其中有一个不同都会产生跨域
ps: 跨域限制访问,其实就是浏览器的限制

解决跨域的方法

一. JSONP:
Jsonp实现原理:< script >标签不收浏览器同源策略的影响,允许跨域引用资源,因此可以通过动态常见script标签,然后利用src属性进行跨域
Jsonp实现方式: 动态创建script标签,通过回调函数处理请求结果,
Jsonp的有点: 1. 可以跨域 2. 兼容性好
Jsonp的缺点:

  1. 只能支持GET请求,Jsonp在调用失败是不会反悔各种HTTP状态
  2. 安全性问题 ,如果提供json的服务被人控制,name所有调用这个Jsonp的网站都存在漏洞

二、通过设置响应头允许跨域(cors方式)
CORS(跨域资源共享)定义一种跨域访问的机制,可以让ajax实现跨域访问,CORS允许一个域上的网络应用向另一个域提交跨域ajax的请求,只需由服务器发送一个响应头即可

header(“Access-Control-Allow-Origin:*”); 允许仁和来源

header(“Access-Control-Allow-Origin:http://local.com”); 值允许来自域名http://local.com的请求

header(“Access-Control-Allow-Origin-Method:POST,GET”); 允许访问的方式

三、利用Nginx反向代理解决跨域
反向代理是指代理服务器来接受Internet上的链接请求,然后将请求转发给内部网络上的服务器;并将从服务器上得到的结果返回给Internet上请求连接的可语段,此时代理服务器对外就表现为一个服务器,反向代理服务器对于客户端而言他就像是原始服务器,这就是一个代理的模式,相当于绕过了浏览器端,就不存在跨域问题

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值