Vue:全局 局部配置 axios 跨域 拦截器 响应器

507 阅读1分钟

一 :全局配置axios

  • 第一步:在npm i axios
  • 第二步在main.js引入axios
    Vue.config.productionTip = false
    // 导入axios怪在到vue构造函数原型下 
    全句都可以使用axios 不需要     每个vue页面导入
     Vue.prototype.$axios = axios;
    
  • 第三步 在App.vue或是其他后缀为vue的页面都可以使用这个全局axios 用法是:this.$axios({})

image.png

二*- 还有全局配置axios实例 基本路径和请求头 全局的 就是后缀为vue的页面都可以使用*

用哪个是由你怎么引入axios决定的,不是由局部实例化和全局实例化决定的

image.png image.png

三:局部配置

  • 第一步:先在APp.vue里面引入axios 因为是是局部的 所以需要引入
  • 第二步:需要data中先定义一个变量为空接收这个函数instance: null,
  • 第三步:使用: this.instance = axios.create({}) 将页面需要公工的数据写在里面

image.png

image.png

四:发送多个axios请求

  • 注:promise的all 和axios all一样都是同时返回结果

image.png

五:跨域问题

  • 第一步:先写一个server.js文件 然后写入

     let http = require('http')
      http.createServer((req,res)=>{
          // res.setHeader('Access-Control-Allow-Origin','*')
          /* 下面是后端返回的结果 */
          res.end('taotao:man not too fast')
          /* 3000是端口 */
      }).listen(3000,function(){
          console.log('server start...')
      })
      
    
  • 第二步:在vue.config.js中添加内容

      devServer: {
     proxy: {
       //  代理服务器地址,到时候axios请求时直接请求代理服务器地址'/api'
       '/api': {    
         target: 'http://localhost:3000/'     
         //  这是真正的服务器地址
       } 
     }
    

-第三步:在app。vue发送这个代理服务器地址

   created() {
    axios.get( '/api').then(res=> {
      console.log(res)
    })
  }
  • 第四步:打开终端 一个终端页面输入node server.js 2遍 在打开一个终端页面输入npm run

61f48c06fa7ade8796bc5d7a227d4cc.png

六:拦截器和响应器

  • 这个是全局配置axios 所有这个拦截器和响应器 写法就直接跟官网一样 image.png
  • 这个是局部配置axios 所有拦截器和响应器是有变化

image.png