浏览器为保护用户的信息,采用同源策略。
同源策略:
协议、主机、端口号都一样才是同源。
http:// www.bilibili.com :8080
当两个URL必须上述三条件都一样才是同源,可以交互。否则,就是跨域。
跨域问题
当两个URL存在不一样时,发送AJAX请求时出现了访问问题。
实现方式
1.通过JSONP
原理就是利用JS天然支持跨域,不受同源策略限制,可以通过script实现跨域。
(HTML5里script标签默认的type属性是text/javascript, 定义了这个类型后,请求的内容会被浏览器以JS代码执行)
局限:只支持get请求
2.通过CORS
浏览器在进行跨域请求时,在请求头中添加头部origin:协议+主机+端口(表明自己的协议、主机和端口号)
服务器接收到请求并看到origin头部时,若需要能够访问,添加Access-Control-Allow-Origin到响应里。
浏览器看到服务器传回的头部就知道是否可以进行跨域请求了。
3.设置反向代理