【发布时间】:2020-05-13 14:48:57
【问题描述】:
在我的 Vue 应用程序中,我将 axios 配置放入单独的文件 config.js。
config.js的内容
import axios from "axios";
const token = localStorage.getItem('user-token');
const baseUrl = `/api/v2.1/document.json&token=${token}&`;
export default () => {
return axios.create({
baseURL: baseUrl
})
}
在我的 Vuex 商店模块 formFields.js 我有:
import Api from '../../api/config';
...
const actions = {
async getApiFields() {
await Api().get('type=documentType').then(function(response){
console.log(response);
}).catch(e => {
this.errors.push(e)
});
}
};
那么,有什么问题吗?不知道axios为什么要加'/'
请求URL:... / API / V2.1 / document.json&标记= eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiI3ZTE2OTk5My00YTJiLTRhYWMtOGNiNi00ZTY0NGY2NjE3NTkiLCJhdWQiOiJNYWVzdHJvTElWRSIsInN1YiI6Ik1hZXN0cm9MSVZFIEFQSSIsImV4cCI6MTU4MDIwMTQ5OSwiaWF0IjoxNTgwMTk3NzE5fQ.PWstAQCDr6Atd_J26futucIBOBUZiFCcp0g5Y1JTYUs&/键入= documentType P>
如何防止添加这个斜线?
【问题讨论】:
-
也许您应该为您的参数使用实际的查询字符串?
-
感谢@04FS,我想停止在我执行 axios 请求的每个文件中从 localStorage 读取令牌(如果可能的话)。
-
我说的是您的 baseUrl,您似乎正试图将可能应该是查询字符串参数的内容填充到 URL 路径中。
-
首先我认为端点
/document.json不应该是baseURL 的一部分。其次,您需要找到一种方法来组合默认查询 (token) 和附加请求查询 (type)。一种解决方案是使用 axios 拦截器。看看我的回答。
标签: vue.js axios prefix slash base-url