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.在客户端请求数据的时候,不再请求跨域地址,而是请求域内的代理地址

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

     
 

你可能感兴趣的:(服务器,运维)