JSONP(JSON with Padding)是一种在浏览器中绕过同源策略限制的旧式跨域数据获取方法:网页通过动态插入<script>标签请求远程资源,服务器返回一段“调用回调函数”的JavaScript代码,把数据(通常是JSON)作为参数传回。常用于早期跨域场景;如今多被 CORS 等更安全、规范的方式取代。
/ˈdʒeɪsən piː/
We used JSONP to fetch data from another domain.
我们用 JSONP 从另一个域名获取数据。
Although JSONP can bypass same-origin restrictions, it only supports GET requests and may introduce security risks if the endpoint is untrusted.
尽管 JSONP 可以绕过同源限制,但它只支持 GET 请求;如果接口不可信,还可能带来安全风险。
JSONP是缩写:JSON(JavaScript Object Notation,JavaScript 对象表示法)+ P(Padding,“填充”)。这里的“padding”指服务器把原本的JSON数据“包裹”在一个回调函数调用里返回,例如:callback({...}),让浏览器把它当作脚本执行,从而实现跨域传递数据。