Node.js 跨域解决方案

同源/同域:当前url和请求数据的url具有相同的协议  域名  ip  端口

同源策略:是浏览器于安全考虑,针对ajax请求的一种限制,浏览器会禁止ajax请求非同源的接口和数据


跨域:一个服务器A 中的页面,去请求另一个服务器B中的数据或者接口,非同源请求就是跨域请求,浏览器默认是禁止的


实现跨域请求的方案:

方案一:浏览器这是cors插件

方案二:目标服务器设置cors头
         1.在目标服务器中,设置cors
     2.在前端页面中正常发起请求即可

优点:快捷方便,一句代码即可实现跨域,客户端请求数据方便,无需修改代码
缺点:对目标服务器的依赖性太强,而且目标度武器跨域随时允许或者禁止跨域访问

方案三:使用jsonp发起跨域请求
1.客户端发起jsonp请求
2.后端使用res.jsonp()响应数据

优点:直接绕开了同源策略对ajax的限制 
缺点:客户端请求比较复杂,请求对目标服务器的依赖性较强,如果目标服务器没有使用jsonp函数响应数据,则不能实现jsonp跨域


方案四:代理服务器
1.在客户端所在的同源服务器中设置服务器代理
2.在客户端请求数据的时候,不再请求跨域地址,而是请求域内的代理地址

优点:不受同源策略的限制,客户端和服务器都无需考虑跨域问题
缺点:实现原理比较繁琐 复杂

     
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值