跨域就是浏览器为了保证安全,增加的同源限制,其实请求是发出了,服务器也响应了,但是被浏览器劫持了。所谓的同源是指,域名、协议、端口均相同,浏览器才会觉得符合要求,一旦有一个不同源,浏览器便会触发安全机制
同源策略:
1、同源就是两个页面相同的协议,主机(域名)、端口,浏览器会对不同源的脚本或文本的访问方式进行限制
2、页面中的链接,重定向以及表单提交不会受到同源策略的影响,允许跨越资源嵌入
跨域解决的办法:
1、JSONP:
原理:<script>标签不受跨域限制,所有的src属性都不受同源限制,比如<img>
JSONP缺点:只支持get请求,不支持其他类型的请求,如果添加别的请求会报错415状态码的错误,格式不正确
优点:兼容性很好,可以在古老的浏览器中运行
2、cors:
cors是一个W3C标准,全程“跨域资源共享”它允许浏览器向跨源服务器,发出XMLHttpRequest请求
解决跨域三种方案:
第一种:使用ajax的jsonp
第二种:使用jquery中的jsonp插件
第三种:使用cors使用该方式