浅谈跨域

什么是跨域?

跨域,是浏览器不能执行其他网站的脚本。是由浏览器的同源策略造成的,是浏览器对JavaScript实施的安全限制。

同源策略限制了一下行为:

Cookie、LocalStorage 和 IndexDB 无法读取

DOM 和 JS 对象无法获取

Ajax请求发送不出去

场景

浅谈跨域

同源策略

同源策略 是由NetScape(网景公司)提出的一个著名的安全策略,它是浏览器最核心也最基本的安 全功能

所谓的同源,指的是协议,域名,端口相同。浏览器处于安全方面的考虑,只允许本域 名下的接口交互,不同源的客户端脚本,在没有明确授权的情况下,不能读写对方的资源

跨域的解决方法

1、jsonp方式

jsonp的原理就是利用script标签没有跨域限制,通过script标签src属性,发送带有callb浅谈跨域

2)nginx反向代理接口跨域
跨域问题:同源策略仅是针对浏览器的安全策略。服务器端调用HTTP接口只是使用HTTP协议,不需要同源策略,也就不存在跨域问题。
实现思路:通过Nginx配置一个代理服务器域名与domain1相同,端口不同)做跳板机,反向代理访问domain2接口,并且可以顺便修改cookie中domain信息,方便当前域cookie写入,实现跨域访问。

#proxy服务器
server {
listen 81;
server_name www.domain1.com;

location / {     proxy_pass   http://www.domain2.com:8080;  #反向代理     proxy_cookie_domain www.domain2.com www.domain1.com; #修改cookie里域名     index  index.html index.htm;      # 当用webpack-dev-server等中间件代理接口访问nignx时,此时无浏览器参与,故没有同源限制,下面的跨域配置可不启用     add_header Access-Control-Allow-Origin http://www.domain1.com;  #当前端只跨域不带cookie时,可为*     add_header Access-Control-Allow-Credentials true; 

版权声明:玥玥 发表于 2021-04-06 22:28:50。
转载请注明:浅谈跨域 | 女黑客导航