jsonp

264 阅读1分钟

什么是jsonp


jsonp是一种跨域的方式,它利用的是html中< script >标签可以不受同源策略影响,访问到其它服务器下的js资源文件。通用类似的html标签还有,

怎么用jsonp


实例 我们要跨域请求某个服务器上的数据: { "name":"Bill Gates", "age":62, "city":"Seattle" }

为了方便举例实现,我在可用的服务器上放置了一个静态文件,其内容为: foo({ "name":"Bill Gates", "age":62, "city":"Seattle" });

添加了一个script标签,标签的 src 指向了另一个域 local.sns.jutouit.com 下的 remote.js 脚本

<html>
<head>
  <title>GoJSONP</title>
  <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
</head>
<body>
<script type="text/javascript">
  function jsonhandle(data){
      alert("age:" + data.age + "  name:" + data.name + "  sex:"+data.sex);
  }
</script>
<script type="text/javascript" src="https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2020/6/1/1726e1322209bb7c~tplv-t2oaga2asx-image.image"></script>
<script type="text/javascript">
</script>
<script type="text/javascript" src="http://local.sns.jutouit.com/remote.js"></script>
</body>
</html>

其中remote.js中存放要获取的数据

    "age" : 25,
    "name": "qqq",
    "sex": "男"
});

总结


其实就是通过函数的形式把json数据格式封装到一个js方法中,在当前文件中应用跨域文件的js,从而就可以获取其中的json数据。