一,定义
跨域是指从一个域名的网页去请求另一个域名的资源,它是由浏览器的同源策略造成的,是浏览器对JavaScript施加的安全限制。跨域的严格一点的定义是:只要 协议,域名,端口有任何一个的不同,就被当作是跨域。
例如:相对http://www.cnblogs.com/wxw1314/index.html同源检测的结果
url | 结果 | 原因 |
https://www.cnblogs.com/wxw1314/ | 失败 | 协议不同 |
http://www.cnblogs.com:8080/wxw1314/ | 失败 | 端口不用 |
http://news.cnblogs.com/wxw1314/ | 失败 | 主机名不同 |
二,解决方法:利用反向代理器nginx解决
主要是修改nginx的配置文件E:\nginx-1.12.2\conf\nginx.conf
location / {
#root为项目的路径
root E:\WebstormProjects\webPage;
index index.html index.htm;
}
location /apis {
#proxy_pass为访问接口的路径
rewrite ^.+apis/?(.*)$ /$1 break;
include uwsgi_params;
proxy_pass http://www.cnblogs.com;
}
在项目访问接口时把路径http://www.cnblogs.com全部换成/apis
如图
就可以实现跨域访问。