JSONP
2019-01-02 本文已影响0人
MDIF
什么是JSONP
通过动态创建script标签来实现跨域沟通的一种解决方案。
- 请求方动态创建script标签
- 使script的src指向服务器,并指定查询参数?callback=xxx(xxx为回调函数名)
- 服务器收到请求并构造响应
- 请求方收到响应并执行回调函数xxx
其中,回调函数的第一个参数接收需要从服务器获取的数据。
服务器构造的响应如下:
response.write(`
${query.callback}.call(undefined,'需要传的数据')//query.callback的值为url的查询参数callback的值 本例中是xxx
`)
JSONP有两条约定
- 查询参数的名字为callback
- 查询参数的值为随机数
JSONP为什么没有POST请求
因为JSONP是通过动态创建script标签来实现的。
动态创建的script没有POST请求。