其他分享
首页 > 其他分享> > JSONP

JSONP

作者:互联网

什么是 JSONP

JSONP 是 JSON 的一种使用模式,可用于解决主流浏览器的跨域数据访问的问题。

实现原理

由于浏览器同源策略的限制,网页中无法通过 Ajax 请求非同源的接口数据。但是 <script> 标签不受浏览器同源策略的影响,可以通过 src 属性,请求非同源的 js 脚本。因此,JSONP 的实现原理就是通过 script 标签的 src 属性,请求跨域的数据接口。并通过函数调用的形式接收响应回来的数据。

JSONP 的缺点

由于 JSONP 是通过 <script> 标签的 src 属性,来实现跨域数据获取的,所以 JSONP 只支持 GET 数据请求,不支持 POST 请求。

注意:JSONP 和 Ajax 之间没有任何关系,不能把 JSONP 请求数据的方式叫做 Ajax,因为 JSONP 没有用到 XMLHttpRequest 这个对象。

jQuery 实现 JSONP

<script>
  $.ajax({
    url: 'http://www.liulongbin.top:3006/api/jsonp?name=zs&age=12',
    // 代表要发送jsonp的请求
    dataType: 'jsonp',
    // 参数的名字
    jsonp: 'csmz',
    // 回调函数的名字
    jsonpCallback: 'hsmz',
    success(res) {
      console.log(res);
    }
  })
</script>

如果要用 jQuery 发起 JSONP,那么一定要用 dataType:'jsonp',来指定要发起 JSONP 请求。参数 JSONP 指的是回调函数所在的参数的名字,参数 jsonpCallback 指的是回调函数的名字。

jQuery 发起 JSONP 的本质还是利用 script 的 src 属性,只不过发起发起 JSONP 的时候动态的 append 一个 script 标签,请求结束后又把 append 的 script 标签给删除了。

 

标签:src,请求,script,标签,JSONP,jsonp
来源: https://www.cnblogs.com/0529qhy/p/16218165.html