POST запрос с body (email, pass)
Хочу сделать страницу авторизации по Email и паролю, запрос отправлять по API “Авторизация” Нужно сделать POST запрос по url (допустим будет https://shop-shop/api/v1/disp/login), где передавать поля (email, password) хранить токет в localStorage и получать в ответ обьект
Я сделал форму где есть метод login() Форма имеет два поля связаных через v-model.
Заранее спасибо.
Ответы (1 шт):
Знаю как минимум два способа:
- XmlHttpRequest
- Axios
Первый способ - это для древних греков. Он уже реализован и не требует дополнительных пакетов, но громоздкий и неудобный.
Второй способ:
- Устанавливаешь axios
$ npm install axios - Импортируешь его
import axios from 'axios' - Строишь запрос, который возвращает промис.
Можно написать твой action так:
export function login ({ commit }, params) {
return axios.post('url/login', params)
.then((data) => {
commit('setUser', data)
})
.catch((e) => {
commit('setUser', null)
})
}
А можно так:
export async function login ({ commit }, params) {
try {
const data = await axios.post('url/login', params)
commit('setUser', data)
} catch(e) {
commit('setUser', null)
}
}
Кстати, тело запроса с email и password - это вот тот самый объект params. Внешний код выглядит примерно так:
store.dispatch('login', {
email: this.email,
password: this.password
})