Vue中使用vue-resource发起JSONP跨域请求的完整示例

作者:松果

时间:2026-10-23

浏览:419

本文介绍如何在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方式请求百度搜索接口的示例分享完毕,希望能为读者提供有价值的参考,欢迎继续支持本站获取更多技术内容。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章