JSONP

什么是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请求。

你可能感兴趣的:(JSONP)