两个不属于同域的网址之间,由于浏览器为了安全禁止直接互相访问资源,为了实现访问,就要做跨域。跨域就是让两个不同源的页面在浏览器中被认为是同源。
下面几种情况都要做跨域:
(1) 域名不一样。
(2)域名一样但端口不一样。
(3)域名一样,协议不一样,例如一个是http,一个是https。
(4)一个是域名,一个是ip地址。
(5)子域名不同,例如一个是www.a.com,另一个是sss.a.com或a.com。
如何做跨域?
在nginx.conf文件中多加一个location:
location /carrots-admin-ajax/{
proxy_pass http://dev.admin.carrotsNaNteng.com/;
}
/carrots-admin-ajax/是两个不同源页面地址需要共有的一段url。
http://dev.admin.carrotsNaNteng.com/是请求要发送到的地址。这个location表示代理服务器要访问http://dev.admin.carrotsNaNteng.com/carrots-admin-ajax/这一段。
然后在js中设置ajax xhr,关键地方是:xmlhttp.open(“post”,”/carrots-admin-ajax/a/login”,true);。
/carrots-admin-ajax/a/login表示点击提交按钮通过ajax访问这一段url。url被代理转发请求,转发到这个完整地址:http://dev.admin.carrotsNaNteng.com/carrots-admin-ajax/a/login。
cd /usr/local/nginx/sbin
./nginx //启动nginx,我的阿里云,重启主机后,需要执行这个才能用。