无法获取 JSONP 数据
Cannot get JSONP data
很抱歉问了一个常见问题,但我似乎无法从 jsonp 获取数据。
我试过以下方法:
window.onload = () => {
var app = new Vue({
el: '#app',
data: {
myData:[],
t1:''
},
methods:{
get(){
this.$http.jsonp('https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su'),{
wd:this.t1
},{
jsonp:'cb'
}.then((res)=>{
this.myData = res.data.s;
},()=>{
alert(res.status)
})
}
}
})
}
和
<div id="app">
<input type="text" v-model='t1' @keyup='get()'>
<ul>
<li v-for='item in myData'>item</li>
</ul>
<p v-show='myData.length == 0'>empty...</p>
我该如何解决?
非常感谢任何帮助!
不用担心!我做了 a JSFiddle 来尝试找出您的具体问题。百度似乎不允许您更改 jsonp 回调的名称,或者至少不允许使用我尝试过的任何参数,例如 cb
或 callback
或 jsonpCallback
等等等等。
然后我试图告诉 vue-resource 手动将实际回调名称设置为 window.baidu.sug
但它不会 appear that vue-resource can handle 设置嵌套在其他对象中的自定义回调名称。
简而言之,你什么都没做错了,你的问题有两种可能的解决方案:
不知道那个baidu API 允许你通过查询参数设置jsonp 回调函数的名称吗?如果是这样,这将是解决您问题的最快方法。然后,您可以将 jsonp
选项设置为百度用来设置查询参数名称的查询参数名称。我在文档中找不到它,但似乎 cb
不是正确的查询参数名称,或者即使它完全受支持。
向 vue-resource that properly supports callback functions nested in other objects. The change would need to be made somewhere around here 提交 PR。
很抱歉问了一个常见问题,但我似乎无法从 jsonp 获取数据。
我试过以下方法:
window.onload = () => {
var app = new Vue({
el: '#app',
data: {
myData:[],
t1:''
},
methods:{
get(){
this.$http.jsonp('https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su'),{
wd:this.t1
},{
jsonp:'cb'
}.then((res)=>{
this.myData = res.data.s;
},()=>{
alert(res.status)
})
}
}
})
}
和
<div id="app">
<input type="text" v-model='t1' @keyup='get()'>
<ul>
<li v-for='item in myData'>item</li>
</ul>
<p v-show='myData.length == 0'>empty...</p>
我该如何解决?
非常感谢任何帮助!
不用担心!我做了 a JSFiddle 来尝试找出您的具体问题。百度似乎不允许您更改 jsonp 回调的名称,或者至少不允许使用我尝试过的任何参数,例如 cb
或 callback
或 jsonpCallback
等等等等。
然后我试图告诉 vue-resource 手动将实际回调名称设置为 window.baidu.sug
但它不会 appear that vue-resource can handle 设置嵌套在其他对象中的自定义回调名称。
简而言之,你什么都没做错了,你的问题有两种可能的解决方案:
不知道那个baidu API 允许你通过查询参数设置jsonp 回调函数的名称吗?如果是这样,这将是解决您问题的最快方法。然后,您可以将
jsonp
选项设置为百度用来设置查询参数名称的查询参数名称。我在文档中找不到它,但似乎cb
不是正确的查询参数名称,或者即使它完全受支持。向 vue-resource that properly supports callback functions nested in other objects. The change would need to be made somewhere around here 提交 PR。