一、为什么需要跨域请求?
咱们先来说说为啥会有跨域这个问题。想象一下,你开了一家超市(网站A),想从隔壁村的批发市场(网站B)进货。但是批发市场说:"不行,你不是我们村的,不能直接来拿货"。这就是浏览器同源策略在作怪——它默认阻止不同源的网站互相访问资源。
同源策略要求协议、域名、端口三者完全相同才算同源。比如:
- http://a.com 和 https://a.com (协议不同)
- http://a.com 和 http://b.com (域名不同)
- http://a.com:80 和 http://a.com:8080 (端口不同)
这些情况都会触发跨域限制。不过别担心,jQuery给我们准备了两把钥匙:JSONP和CORS。
二、JSONP:老牌跨域解决方案
2.1 JSONP工作原理
JSONP(JSON with Padding)是个聪明的"曲线救国"方案。它利用了