做网站的宽度为多少,云南省建设工程信息服务平台,wordpress盗版插件盈利,我要注册最近在学习关于什么是jsonp#xff0c;以及为什么要用jsonp我就不多说了#xff0c;不明白的同学自行百度一下。我们先来说一下这里我以json数据为例#xff0c;首先我们通过 $.get可以直接得到一个我们想要的对象#xff0c;但是用 jsonp 就会出现报错代码如下#xff0c…最近在学习关于什么是jsonp以及为什么要用jsonp我就不多说了不明白的同学自行百度一下。我们先来说一下这里我以json数据为例首先我们通过 $.get可以直接得到一个我们想要的对象但是用 jsonp 就会出现报错代码如下$.ajax({url:http://192.168.8.59/weixinvip/VIP/ERP/Home/api.ashx?agetwxativityi1,type:GET,dataType:jsonp,sccuess:function(data){console.log(data)}})这时候我们看到控制台并没有如我们所愿输出data数据而是报错了。这个时候我们查看Network看到实际上已经请求到了数据我们可以看到请求成功了状态码200数据也返回了但是为什么还是报错了呢这就要我们分析下jsonp的原理了首先在发送ajax的时候正常我们是拿到了一段json数据但是我们都知道jsonp实际上是相当于用JavaScript加载脚本的方式将数据加载进来的说到这里我想有些同学大概已经明白为什么会报错了其实这个时候就是直接在页面中加入了一段script里面的内容就是返回给我们的数据现在我们再来想想这段JavaScript代码其实就是一段没有意义的对象了因为没有将它赋值个一个变量你是无法拿到所以这个时候我们就需要后台同事的配合了我相信说到这里大家应该都明白怎么做了所以今天我们主要是说一下闲话不多说直接上代码var vm new同样报错了而且vue-resource还多给我们报了一个错我们再来看看network同样请求成功数据也拿到了但是就是报错。我们注意看一下请求头会发现多了一个参数这个参数是干嘛的呢我们看看源码这里我们可以看到实际上callback是随机生成的字符串并且这个参数名我们也可以自己给他命名如果没指定默认是“callback”,既然默认传递的参数那就肯定是有用的。其实vue发送jsonp还有两个参数我们来看看Vue.http.jsonp(url,{params: {pageID:29},jsonp:_callback}) //这步就是关键改callback名这里params是要发送的数据对象jsonp是设置回调的名称也就是上面的callback名称(不设置默认为callback)现在我们就需要后台协助一下获取我们发送过去的”_callpack”的值将这个值拼接到返回的json数据上这时候就可以了