vue 跨域cross配置

作者: litielongxx | 来源:发表于2018-04-10 14:28 被阅读0次

前言

vue进行接口调试的时候,如果涉及到服务器和本地的跨域问题的话,用get简单请求是可以获取到数据的,但是如果是post或者带有请求前缀如AccessToken之类的复杂请求的话需要配置config/index.js下的proxytable,否则会报跨域错误。

配置参数

proxyTable: {
      // 替换的简写
      '/api':{
        target:'https://www.apiopen.top',  // 接口地址
        changeOrigin: true // 是否跨域
        pathRewrite:{
          '^/api':''//注意实际接口不存在/api就需要重写去除,比较会提示server 503
        }
      }
    },

接口示例

import axios from '../utils/axios';
import qs from 'qs'
const service=axios.create({
  baseURL:'/api',//替代接口地址
  timeout:5000,
  // 处理参数
  transformRequest:[function(data){
    data=qs.stringify(data);
    return data;
  }]
})
export default service
export const regist =(key,phone,passwd)=>{
    const data={
        key,phone,passwd
    }
    return axios.post('/createUser',data)
}

Vue axios后台post参数为空

根本原因

目前java php node也好,后台接收的post数据都是基于发送时使用的application/x-www-form-urlencoded的传递方式,而axios默认的传递方式为Content-type为application/json,所以导致了默认的post传递数值为空。

解决方案:

1 改写userService(不推荐)
通过URLSearchParams处理参数,URLSearchParams的兼容性并不高,(需要polyfill,支持google不支持ie和360)

 // const params=new URLSearchParams({
    //     key,
    //     phone,
    //     passwd
    // })
    // return axios.post('/createUser',params);

2通过transformRequest每次请求前转换参数

const service=axios.create({
  baseURL:'/api',
  timeout:5000,
  // 处理参数
  transformRequest:[function(data){
    data=qs.stringify(data);
    return data;
  }]
})

参考资料:
axios post参数为null解决 https://www.jianshu.com/p/b22d03dfe006
axios发送POST请求时后台接收不到的问题 https://zhuanlan.zhihu.com/p/27498996

相关文章

  • vue 跨域cross配置

    前言 vue进行接口调试的时候,如果涉及到服务器和本地的跨域问题的话,用get简单请求是可以获取到数据的,但是如果...

  • 2021-02-23

    一、什么是跨域 二、vue.config.js 跨域配置

  • Hadoop配置Kerberos互信

    当Hadoop集群开启Kerberos后,跨集群访问需要配置Kerberos cross-realm(跨域访问)。...

  • Vue-跨域的产生及解决办法

    本篇参考如下文章: vue3.0 vue.config.js 配置跨域 vue-cli3设置代理跨域详解 vue-...

  • vue 跨域的配置

    关于跨域的配置真是累呀 在网上找了资料 才成功实现跨域了 其实主要在vue.config.js 来配置跨域

  • vue配置反向代理

    Vue跨域配置- - -反向代理配置 1.脚手架配置:vue.config.js /参考:/https://cli...

  • ajax 请求

    Vue开发中解决跨域问题 Axios 配置请求拦截

  • Web前后端跨域问题处理

    跨域问题有前台跨域(iframe间)和后台跨域。 前台跨域的解决方案可以采用跨域文档通讯(Cross domain...

  • vue cli 解决跨域 线上 nginx 反向代理配置

    vue cli 解决跨域 线上 nginx 反向代理配置 前后分离 axios 接 api 跨域问题如图: 解决办...

  • Nginx跨域

    Nginx解决跨域问题(CORS) CORS(Cross-Origin Resource Sharing) 跨域资...

网友评论

    本文标题:vue 跨域cross配置

    本文链接:https://www.haomeiwen.com/subject/potnhftx.html