本文介绍如何在Vue项目中通过vue-resource库发起JSONP跨域请求。步骤包括安装依赖、在main.js中引入插件,并在组件中利用this.$http.jsonp调用百度搜索自动补全接口。示例展示了GET参数传递及成功回调处理,适用于解决Vue前端跨域访问限制问题。
安装vue-resource依赖
首先,在项目根目录下执行命令安装vue-resource依赖:yarn add vue-resource
在main.js中引入插件
接着,在项目的入口文件main.js中引入vue-resource模块,使其生效。
import Vue from 'vue'
import MintUI from 'mint-ui'
import 'mint-ui/lib/style.css'
import App from './App.vue'
import router from './router'
import VueResource from 'vue-resource'
Vue.config.productionTip = false
Vue.use(MintUI)
Vue.use(VueResource)
new Vue({
router,
render: h => h(App)
}).$mount('#app')
组件内发起JSONP请求
然后在About.vue组件中编写具体的请求逻辑代码。
<template>
<mt-button type="primary" size="small" @click="get()">default</mt-button>
</template>
<script>
export default {
name: 'about',
data(){
return{
}
},
methods:{
get(){ //引入vue-resource之后, 相当于在vue实例(this)身上新增了一些方法或对象(如:$http)
this.$http.jsonp('https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su', //jsonp参数一: 跨域请求接口;
{
params:{ //jsonp交互走的是get形式(不是post), 传递参数用params
wd:'a'
},
jsonp:'cb' //接口的callback名字, vue默认名字为"callback"
}, //jsonp参数二: 传到的params和callback类型
).then(function(res){ //固定形式: jsonp('',{params{},jsonp:'cb'}).then(function(){'成功'},function(){'失败'});
alert(res.data.s);
},function(res){
alert(res.status);
});
}
}
}
</script>
以上关于vue-resource通过JSONP方式请求百度搜索接口的示例分享完毕,希望能为读者提供有价值的参考,欢迎继续支持本站获取更多技术内容。