浏览器基于安全考虑,采取同源策略。只要协议,域名和端口有一个不同。浏览器都会认为属于不同域。ajax会请求失败。
常见解决方案:
一:jsonp
利用
<script src="https://www.baidu.com&callback=jsonp" />
<script>
function jsonp(data){
console.log(data)
}
</script>
二:CORS
(cross origin resource sharing)跨域资源共享,在服务端中使用自定义的HTTP头部,ajax请求时附带头信息。
三:postMessage
H5提出的api。
四:nginx代理跨域
浏览器基于安全考虑所采用的同源策略,不属于HTTP协议的一部分。服务端只需遵守HTTP协议,所以不存在跨域问题。所以设置代理也就变得可行。
五:WebSocket和NodeJs中间件解决跨域问题
WebSocket一般不用于单纯解决跨域问题,反而NodeJs用得比较多一点。