web跨域请求实战

同源策略

理解跨域首先必须要了解同源策略。同源策略是浏览器上为安全性考虑实施的非常重要的安全策略。何谓同源:URL由协议、域名、端口和路径组成,如果两个URL的协议、域名和端口相同,则表示他们同源。

跨域就是通过某些手段来绕过同源策略限制,实现不同服务器之间通信的效果。具体策略限制情况可看下表:

URL 说明
http://www.a.com/a.js http://www.a.com/b.js 同一域名下
http://www.a.com/lab/a.js http://www.a.com/script/b.js 同一域名不同文件夹下
http://www.a.com:8000/a.js http://www.a.com/b.js 同一域名不同端口
http://www.a.com/a.js https://www.a.com/b.js 同一域名不同协议
http://www.a.com/a.js http://127.0.0.100/b.js 域名和域名对应ip
http://www.a.com/a.js http://script.a.com/b.js 主域相同,子域不同
http://www.a.com/a.js http://a.com/b.js 同一域名,不同二级域名
http://www.a.com/a.js http://www.b.com/b.js 不同域名

只有文件协议、域名、端口和路径全部相同,这些文件才会是同源,同源文件间请求无须特殊处理,当不同源文件之间发生请求时,则需要跨域处理。

jsonp实现跨域原理

什么是jsonp?
参考百度百科,JSONP(JSON with Padding)是JSON的一种“使用模式”,可用于解决主流浏览器的跨域数据访问的问题。由于同源策略,一般来说位于 server1.example.com 的网页无法与不是 server1.example.com的服务器沟通,而 HTML 的