我已将VueJS项目部署到www.example.com/demos/app,
这样的域
但是,当我从axios向api发送请求时,它指向www.example.com/login
而不是www.example.com/demos/app/login
以下是使用axios
export const login = ({ dispatch }, { payload, context }) => {
return axios.post('/login', payload).then((response) => {
// do something
}).catch((error) => {
// handle erros
})
}
答案 0 :(得分:10)
您可以采用的一种方法是在页面的头部添加元标记(就像使用csrf一样),然后在bootstrap.js
文件中引用它:
<强>头强>
<meta name="api-base-url" content="{{ url('demos/app') }}" />
bootstrap.js (位于window.axios = require('axios');
下方)
window.axios.defaults.baseURL = document.head.querySelector('meta[name="api-base-url"]').content;
希望这有帮助!
答案 1 :(得分:1)
在config.js中:
const CONFIG = {
API_URL_ROOT: 'http://localhost:8000/api/v1/',
}
export default CONFIG;
您可以像这样设置axios默认值:
import config from '../config.js';
axios.create({
baseURL: config.API_BASE_URL
});
或者您可以通过从API_BASE_URL
导入config
来设置路径,然后在每次使用get/post/put/delete
进行axios
来电时将其指向
答案 2 :(得分:1)
Laravel随附了axios,并将其导入bootstrap.js
中,因此只需转到bootstrap.js
并添加以下内容即可:
window.axios.defaults.baseURL = 'http://example.test';
您可以在window.axios.defaults.headers.common
行之后添加它
-其他信息:
axios.create
将创建一个具有自己的全局URL和配置的实例。如果您有多个网址或配置,并且想要在不同的组件中使用它,请使用它。