关于 JSONP 及 CORS 绕过同源策略的原理解释
JSONP 跨域
JSONP 的全名叫做 JSON Padding
- 其出现的目的不是为了解决跨域问题,而是在 HTML 中的 Javascript 调用出现的历史遗留问题这样形式的 src 远程调用,会自动绕过同源策略的限制,直接访问远程的
1
<script src=http://127.0.0.1/func.js?call=callfunc></script>
func.js
文件中的callfunc
函数,并供 JS 在后续解析为 JSON 格式进行返回
而之所以叫 JSON Padding,是因为例如如下的简单实现,访问完远端 JS 文件中的 callfun 函数后(或称之为 API 后),远程的内容返回到该 HTML 文件的格式为使用 JSON 的数据封装(例如这种格式:callback({"name":"hax","gender":"Male"})
)