一、AJAX跨域

1.浏览器的同源策略:协议、域名、端口号都相同 -- 用户信息安全

2.AJAX跨域:当使用AJAX请求数据时,如果三者中的任意一个不一样,那么就是一个跨域请求

http://teach.mengmacoding/interface/letter.php
协议:http
域名:teach.mengmacoding
端口号:80

二、跨域的解决方案

1.设置本地代理服务器:服务器请求资源不受同源策略影响

原理:将远端的资源请求到本地后再访问 -- 依旧访问同源资源

2.CORS:服务端允许跨域请求 -- 主流解决方案

res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "X-Requested-With");
res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
服务端设置header
Access-Control-Allow-Origin:*

3.jsonp<script>能够访问跨域资源

1.不是真正意义上的AJAX,实际是script
2.只能实现get请求
3.需要客户端和服务端同步支持

更多推荐

三种跨域解决方案(前端or后端or jsonp)