Вход в Vue с помощью запроса Axios HTTP

#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 ‘;