#javascript #vue.js #http #axios
#javascript #vue.js #http #axios
Вопрос:
Я новичок в Vue и пытаюсь отправить запрос HTTP на мой сервер,
Когда я проверяю в своем браузере, я получаю токен доступа из /login, но в api / users я получаю «Токен недействителен». Как мне получить данные моего api / пользователей?
import axios from "axios";
export default {
name: "login",
async created() {
const response = await axios.get("api/users", {
headers: {
Authorization: "Bearer " localStorage.getItem("token")
}
});
console.log(response);
},
data() {
return {
showError: false,
email: "",
password: "",
};
},
methods: {
async EnvioLogin() {
try {
const response = await axios.post("api/auth/login", {
email: this.email,
password: this.password,
});
localStorage.setItem("token", response.data.token);
const status = JSON.parse(response.status);
if (status == "200") {
console.log(response);
this.$router.push("intermediorotas");
}
} catch (error) {
this.showError = true;
setTimeout(() => {
this.showError = false;
}, 3000);
}
},
},
Комментарии:
1.
created
перехват выполняется передEnvioLogin
… так что, конечно, токен еще не установлен… также … чтоconst status = JSON.parse(response.status);
происходит!!!
Ответ №1:
Вы можете создать службу для вызова серверной части, я думаю, проблема в URL http://localhots:3000/api , вы пропустили эту часть http://localhots:3000
import axios from 'axios'
const client = axios.create({
baseURL: 'http://localhots:3000/api',
headers: {
'Content-Type': 'application/json',
},
})
export default client
затем импортируйте службу
import myService from './myService'
await myService.get(`/auth/login`, {})
Комментарии:
1. Я использую в axios.js это: импорт axios из ‘axios’ axios.defaults.baseUrl = ‘ 127.0.0.1:8000 ‘;
2. @Guilherme тогда вместо localhots:3000 используйте baseUrl: ‘ localhots:127.0.0.1:8000 ‘;