翼度科技»论坛 编程开发 JavaScript 查看内容

什么是jsonp

6

主题

6

帖子

18

积分

新手上路

Rank: 1

积分
18
jsonp 是前端一种用来解决网站跨域的技术,利用script标签不受同源策略影响的特性引入一个非同源的js文件,并定义一个回调函数来接收数据,这样就可以实现跨域获取数据了,例如:
现在有一个链接返回的数据是这样的:
  1. cb({
  2.     "name": "swk",
  3.     "age": 18
  4. })
复制代码
这是一个标准的jsonp格式,它通过调用函数cb来传递数据,那么我们只需要定义一个函数cb来接收数据就可以了,例如:
  1. function cb(data) {
  2.     console.log(data); //{ name: "swk", age: 18 }
  3. }
复制代码
那么我们只需要在页面中引入这个js文件就可以了,例如:
  1. [/code]这样就可以实现跨域获取数据了,但是这种方式有一个缺点,就是只能通过get方式来传递数据,例如:
  2. [code]
复制代码
这样就可以传递数据了,
除此之外,我们还可以使用jQuery中ajax的jsonp方式来传递数据,例如:
  1. $.ajax({
  2.     url: 'xxx.xxx',
  3.     dataType: 'jsonp',
  4.     jsonp: 'callback',
  5.     data: {
  6.         name: 'swk',
  7.         age: 18
  8.     },
  9.     success: function (data) {
  10.         console.log(data);
  11.     }
  12. })
复制代码
jsonp参数需要填写的是服务器返回的函数名的参数名,例如:我们传递的参数中callback=cb,那么这里就需要填写cb

来源:https://www.cnblogs.com/primice/p/17384564.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具