第56天 JSONP的原理是什么?解决什么问题?
Activity
liuxiaole commentedon Jun 11, 2019
JS 动态插入 script 并将 src 指向后端 API,后台返回 json 并使用协定的 callback 函数把 json 包起来。浏览器以 JS 内容解析执行返回的内容,回调函数得以被调用并传入了返回的 json 对象。
解决的是第一版 XHR 无法发送跨域请求的问题,虽然曾经一度被大厂使用,但是 hack 痕迹满满,并且不支持 post 请求。XHR 2.0 以及 Fetch API 如今兼容性都不错,他们支持 CORS HTTP headers,是跨域资源共享的官方解决方案。
myprelude commentedon Jun 13, 2019
原理:
动态插入script标签,执行callback回调函数,将回调函数中的参数输出
解决:
解决跨越问题
缺点:
不支持post
解决跨域方案:
Vi-jay commentedon Jul 31, 2019
解决跨域
原理:
kruzabc commentedon Jan 2, 2020
JSONP的原理一句话来讲: script 引用的js文件没有跨域限制。
可以用来解决跨域问题,兼容性特别好,一般用于给第三方做接口查询。
smile-2008 commentedon Dec 1, 2020
xiaoqiangz commentedon Jun 9, 2022
jsonP是利用script能够访问任何域名的特性,利用挂载全局的回调函数,可以解决跨域问题。
panpanxuebing commentedon Dec 13, 2024
利用 script 标签 src 属性并不被同源策略所约束,可以请求不同域名下的接口。
实现回调的原理是在页面中声明一个 callback 方法,请求接口中返回的数据格式为 callback(json)。
解决跨域问题。