当前位置:首页 > 操作系统 > Ios

vue 中使用axios 发起跨域请求

最近在项目中使用到axios组件的跨域请求,经过一番研究后,特此记录。

1、安装axios

            $  npm install axios -S
        

2、配置axios

在项目的目录结构的 src 文件夹下创建api文件夹,并在此文件夹下创建AxiosConfig.js文件,用于配置axios。

AxiosConfig.js 详细内容如下:

            import axios from ‘axios‘;
import store from ‘storejs‘;
let http = axios.create({
    baseURL: ‘http://xxxxxxx/‘, //后台服务地址 
    withCredentials: true,
    headers: {
      
    },
    transformRequest: [function (data,headers) {
      if (headers[‘Content-type‘] === ‘multipart/form-data‘) {
        return data;
      } else {
        return JSON.stringify(data);
      }
      // let newData = ‘‘;// for (let k in data) {//   if (data.hasOwnProperty(k) === true) {//     newData += encodeURIComponent(k) + ‘=‘ + encodeURIComponent(data[k]) + ‘&‘;//   }// }// return newData;    }]
  });
  
  function apiAxios(method, url, params, token, response) {
    http({
      method: method,
      url: url,
      headers:{
        ‘Content-Type‘: ‘application/json;charset=utf-8‘,
        ‘token‘: token
      },
      data: method === ‘POST‘ || method === ‘PUT‘ ? params : null,
      params: method === ‘GET‘ || method === ‘DELETE‘ ? params : null,
    }).then(function (res) {
      response(res);
    }).catch(function (err) {
      response(err);
    })
  }
  
  export default {
    get: function (url, params, token, response) {
      return apiAxios(‘GET‘, url, params, token, response)
    },
    post: function (url, params, token, response) {
      return apiAxios(‘POST‘, url, params, token, response)
    },
    put: function (url, params, token, response) {
      return apiAxios(‘PUT‘, url, params, token, response)
    },
    delete: function (url, params, token, response) {
      return apiAxios(‘DELETE‘, url, params, token, response)
    }
  }
        

这里的配置了POST、GET、PUT、DELETE方法。并且自动将JSON格式数据转为URL拼接的方式

同时配置了跨域,不需要的话将 withCredentials 设置为 false 即可

此处由于业务原因,配置请求的 headers 在创建的时候配置,并添加 用于验证的 token 信息。

3、使用axios

首先在main.js中引入方法

            import Api from ‘./api/AxiosConfig‘;
Vue.prototype.$api=Api;
        

配置完成以后,在需要的地方直接调用即可

            
                this.$api.post(‘/请求地址‘, {
                 "参数名":"参数值"
                }, token, response => {
                    if (response.status >= 200 && response.status < 300) {
                       console.log(response.data);\请求成功,response为成功信息参数
                    } else {
                       console.log(response.message);\请求失败,response为失败信息
                    }
                });
        

 

原文:https://www.cnblogs.com/guoxiangyue/p/12455384.html


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!