同源策略是浏览器的一种安全策略,所谓同源是指域名,协议,端口完全相同,只有同源的地址才可以相互通过AJAX的方式请求。即:一般情况下,AJAX在域名、协议、端口这三者中若有一者与当前的地址不同,则无法请求成功。
解决方案:
-
JSONP JSONP:JSON with Padding,是一种借助于script标签发送跨域请求的技巧,其原理就是在客户端借助script标签请求服务端的一个动态网页(php文件),服务端的这个动态网页返回一段带有函数调用的JavaScript全局函数调用的脚本,将原本需要返回给客户端的数据传递进去。
问题:
- JSONP 需要服务端配合,服务端按照客户端的要求返回一段 JavaScript 调用客户端的函数
- 只能发送 GET 请求
注意:jQuery 中使用 JSONP 就是将 dataType 设置为 jsonp
-
CORS
CORS:Cross Origin Resource Share,跨域资源共享
>//服务器端代码,允许远端访问
header('Access‐Control‐Allow‐Origin: *');
复制代码
这种方案无需客户端作出任何变化(客户端不用改代码),只是在被请求的服务端响应的时候添加一个Access-Control-Allow-Origin的响应头,表示这个资源是否允许指定域请求。