I' trying to deploy an Vue app which has a separate backend and which will be hosted in different domain. For example:
- meow.cat.xyz (App)
- api.meow.cat.xyz (API)
Now after npm run build
I tried to preview it locally by running serve -s dist
and the application is severing at localhost:5000. However the problem is it not sending API request at the current end point (which is localhost:8000
at local and api.meow.cat.xyz
at server). I tried config CORS as following
vue.config.js
module.exports = {
devServer: {
port: process.env.VUE_APP_DEV_PORT,
proxy: process.env.VUE_APP_API_ROOT_PATH,
},
};
.env.development
VUE_APP_API_ROOT_PATH = 'http://localhost:8000/api'
VUE_APP_DEV_PORT = 3000
Note that I'm using axiox. Here is my axios setup.
API.js
import axios from "axios";
const injectAccessToken = (config) => {
const accessToken = localStorage.getItem("access_token");
if (accessToken)
config.headers.common["Authorization"] = `Bearer ${accessToken}`;
return config;
};
const config = {
baseURL: process.env.VUE_APP_API_ROOT_PATH,
};
const API = axios.create(config);
API.interceptors.request.use(injectAccessToken);
export default API;
and Using it as following
Login.vue
import API from "@/api/Api";
<script>
const res= await API.post('login')
</script>
This solution is not working yet. Its sending request at http://localhost:5000
. What's the point ? Note that I'm using axios. thanks in advance.