跨域的产生
同源策略是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。
同源策略是指协议、域名、端口均相同才可通过访问,否则访问被拒绝。
同源策略限制了以下行为:
Cookie、LocalStorage 和 IndexDB 无法读取
DOM 和 JS 对象无法获取
Ajax请求发送不出去
解决方法
方式1 jsonp
缺点:只支持get请求
方式2 cors
CORS(跨域资源共享)允许一个域上的网络应用向另一个域提交跨域AJAX请求。
服务器设置Access-Control-Allow-Origin HTTP响应头之后,浏览器将会允许跨域请求.
Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: http://XXX.xxxx
对于附带身份凭证的请求,服务器不得设置 Access-Control-Allow-Origin 的值为“*”。
方式3 nginx反向代理
nginx代理服务端,将浏览器发送的请求转发至服务端。如果是使用的Vue框架,可使用webpack的代理功能。
在nginx配置文件中增加如下配置
server {
listen 1111;//端口
server_name localhost;//域名
location / {
root D:/WebProject/itemname;
index index.html index.htm;
}
location /api/v1 {
proxy_pass http://xx.12.67.23:9082/api/v1;//后端接口地址
}
}