在Vue js中为Axios设置baseUrl发出请求

时间:2018-07-16 10:30:34

标签: javascript vue.js axios

在我的应用程序中,我使用Axios来处理我的API请求。在main.js中,我设置了baseUrl。没有我提出请求,它仅通过设置baseUrl就可以单独发出请求,因此始终在将应用程序加载到浏览器中时出现。

在我的main.js axios.defaults.baseURL = 'https://domain.nl/path/to/my/api

一切正常,但是对baseUrl的请求会返回500,表示不请求数据。

main.js中的实现:

import axios from 'axios'
import VueAxios from 'vue-axios'

config:

axios.defaults.baseURL = https://domain.nl/path/to/my/api
axios({
withCredentials: true,
credentials: 'same-origin',
headers: { 'content-type': 'application/x-www-form-urlencoded' }})

然后在另一个文件中执行一个export default {},其中包含:

getLang(payload) {

    payload.method = 'GET'
    payload.url = 'lang';

    return axios(payload).then(result => {
        return result.data
    });
}

有人知道如何取消此请求,还是有更好的方法来设置没有此“ bug”的baseUrl?

2 个答案:

答案 0 :(得分:1)

我已尝试复制您的问题,但对我来说很好,您如何实施Axios?您使用的是哪个版本?

[EDIT]建议的解决方案

将此作为Nuxt插件

const axios = require('axios')
module.exports = axios.create({
  baseURL: 'domain.nl/path/to/my/api'
})

您可以在下面的评论中找到更多信息

答案 1 :(得分:0)

import Vue from "vue";
import Axios from "axios";


Vue.prototype.$http = Axios;

Axios.defaults.headers.common = {'X-Requested-With': 'XMLHttpRequest'}
Axios.defaults.baseURL = (process.env.API_PATH !== 'production') ? 'http://localhost:8000/api/' : '';

确保baseURL不是baseUrl