vue 使用axios 在EDGE浏览器上面post请求变成了get请求

在vue项目上使用axios 执行异步请求,在google和火狐上正常,在edge上post请求变成了get请求

//axios.js
export default {
  install () {
    Vue.prototype.$http = axios
    Vue.http = axios
  }
}
//main.js
import axios from '@/utils/axios'
Vue.use(axios)![图片描述][1]

//调用请求
return Vue.http.post(LOGIN, qs.stringify(form)).then(data => {
            if(data.ret_code==0){
                commit(SET_TOKEN, data.data.token)
                commit('setLoginStatus',true)
            }
            return data
        })

google
edge
edge

阅读 12.9k
3 个回答

我是这样写的

定义
Vue.prototype.axios = axios;
//dev
axios.defaults.baseURL = 'http://localhost:8081/ynnn';

请求
this.axios.post('updateImageInfo',recommend).then(function (response) {}));

在edge上没问题

写了个测试在一下两个版本跑结果竟然是不同的.万年的微软坑
Microsoft Edge 41.16299.15.0 axios post 请求会自动转成get请求
Microsoft Edge 38.14392.1066.0 axios post 请求正常

import Axios from 'axios'
import Promise from 'es6-promise'
Promise.polyfill()
import qs from 'qs'
const URL= 'http://192.168.0.112/account/login/username'
let params = {
    username:'admin',
    password:'admin',
}
Axios.post(URL,qs.stringify(params))
.then(res=>{
    console.log(res)
    }
)
.catch(error=>{
    console.log(error)
    }
)

ISSUES回答,github

EDGE相同问题,微软

这不是浏览器的原因,这是写法的问题 axios.post/get这种写法有时会这样,前端POST,后端有时POST有时会GET,,,为了保险,应换成method:post,这种写法,,原因看duanshuiLu点抗母的那个视频讲解

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏