JSONP是一种通过script标签实现跨域请求的技术,优点是兼容性好、实现简单,能绕开同源策略限制;缺点是仅支持GET请求、存在XSS安全隐患、缺乏错误处理和调试困难,且依赖全局函数导致命名冲突风险。

JSONP(JSON with Padding)是一种实现跨域数据请求的古老技术,主要用来绕过浏览器的同源策略限制。虽然现在已被 CORS 等更现代的方法逐步取代,但在一些老系统或特定场景中仍有使用。
优点
支持跨域请求:JSONP 最大的优势是能实现跨域数据获取,适用于不同域名、协议或端口之间的数据通信。
兼容性好:几乎所有的浏览器都支持 JSONP,包括一些非常老旧的版本,适合在低版本浏览器环境中运行。
实现简单:不需要复杂的服务器配置,只需服务端返回一个函数调用包裹 JSON 数据,前端动态创建 script 标签即可完成请求。
不受 AJAX 同源策略限制:script 标签天生可以加载外部资源,因此可绕开浏览器对 XMLHttpRequest 的同源限制。
缺点
只支持 GET 请求:JSONP 依赖 script 标签加载资源,无法发送 POST、PUT、DELETE 等请求方法,限制了使用场景。
yershop开源网店系统是一款基于tp5.1优化版的商城系统,具有建站便捷、扩展丰富、二次开发灵活,以及支持云服务的特点,适合企业及个人快速构建个性化网上商店.系统分为开源版和商业版
安全性较差:
- 容易受到 XSS 攻击,因为加载的是任意脚本,如果来源不可信,可能执行恶意代码。
- 没有错误处理机制,无法判断请求是否失败(如 404 或 500 错误)。
调试困难:script 加载失败时,浏览器通常不提供详细的错误信息,排查问题较麻烦。
依赖全局函数:需要预先定义回调函数,容易造成命名冲突或全局污染。
无法取消请求:一旦 script 标签插入页面,请求就会发出,不能像 AJAX 那样通过 abort() 中断。
基本上就这些。JSONP 虽然解决了早期跨域难题,但因安全性和功能限制,现在推荐优先使用 CORS 或代理方式实现跨域。只有在必须兼容极老环境且仅需 GET 请求时,才考虑使用 JSONP。









