跨域原因
同源策略的限制
协议、域名、端口号必须相同,否则被同源策略限制,防止恶意的网站窃取数据,防范跨站脚本的攻击,禁止客户端JavaScript对不同域的服务进行跨站调用
常用解决方案1 jsonp(只能get请求)
在页面添加<script src="">
发送get请求,服务器收到请求后,将数据放在一个指定名字的回调函数里传回来
具体做法:使用jQuery封装的Ajax,只需在客户端的Ajax请求的url中加入url?callback=?即可;
服务器端需写入var callback = req.query.callback;返回的value需要封装成json,res.send(callback+’(’+json+’)’)。
解决方案2 CORS(Cross-Origin Resource Sharing):
具体做法 header(“Access-Control-Allow-Origin: *”);
解决方案3 在同一个域名下做ngix转发,porxy代理
强行改变主域
document.domain=“127.0.0.1”;