var config = {
headers: {'Authorization': "bearer " + token}
};
var bodyParameters = {
key: "value"
}
Axios.post(
'http://localhost:8000/api/v1/get_token_payloads',
bodyParameters,
config
).then((response) => {
console.log(response)
}).catch((error) => {
console.log(error)
});
первым параметром является URL.
вторым является тело JSON, которое будет отправлено вдоль Вашего запроса.
третий параметр заголовки (среди прочего). Который является JSON также.
Вот уникальный способ маркера установки Authorization в axios. Установка конфигурации к каждому вызову axios не является хорошей идеей, и можно изменить маркер Авторизации по умолчанию:
const axios = require('axios');
axios.defaults.baseURL = 'http://localhost:1010/'
axios.defaults.headers.common = {'Authorization': `bearer ${token}`}
export default axios;
Редактирование
Некоторый API требует, чтобы несущая была записана как Несущая, таким образом, можно сделать:
axios.defaults.headers.common = {'Authorization': `Bearer ${token}`}
Теперь Вы не должны устанавливать конфигурацию на каждый вызов API. Теперь маркер Авторизации установлен на каждый вызов axios.
Второй параметр axios.post
data
(не config
). config
третий параметр. Посмотрите это для деталей: https://github.com/mzabriskie/axios#axiosposturl-data-config
Можно создать конфигурацию однажды и использовать ее везде.
const instance = axios.create({
baseURL: 'https://some-domain.com/api/',
timeout: 1000,
headers: {'Authorization': 'Bearer '+token}
});
instance.get('/path')
.then(response => {
return response.data;
})
При помощи перехватчика Axios:
const service = axios.create({
timeout: 20000 // request timeout
});
// request interceptor
service.interceptors.request.use(
config => {
// Do something before request is sent
config.headers["Authorization"] = "bearer " + getToken();
return config;
},
error => {
Promise.reject(error);
}
);
Если Вы хотите к некоторым данным после передающего маркера в заголовке так, чтобы попытка этот код
const api = 'your api';
const token = JSON.parse(sessionStorage.getItem('data'));
const token = user.data.id; /*take only token and save in token variable*/
axios.get(api , { headers: {"Authorization" : `Bearer ${token}`} })
.then(res => {
console.log(res.data);
.catch((error) => {
console.log(error)
});
Это работает, и я должен установить маркер только однажды в моем app.js
:
axios.defaults.headers.common = {
'Authorization': 'Bearer ' + token
};
Затем я могу выполнить запросы в своих компонентах, не устанавливая заголовок снова.
"axios": "^0.19.0",
Это - то, с чем я также столкнулся. Маркер, который Вы являетесь передающими, не корректен.
Просто Hardcode маркер и передача, Вы получите корректный ответ. Но если маркер не будет передан в одинарной кавычке'', то затем это, конечно, перестанет работать. Это должна быть в формате 'Авторизация': 'Несущая YzE5ZTdiMjVlYzM5NjA2MGJkZTM5NjVlOTQ5YMmQ5ZjMwYjA0YmEzZmZjN2I1MmI4MDJkNQ', где после Несущей одно пространство должно присутствовать, также в одинарных кавычках, это очень важно.
var token = "YzE5ZTdiMjVlYzM5NjA2MGJkZTM5NjVlOTQ5YMmQ5ZjMwYjA0YmEzZmZjN2I1MmI4MDJkNQ";
var headers = {
Authorization: "Bearer " + token,
Accept: "application/json, text/plain, */*",
"Content-Type": "application/json"
};
IMP: вышеупомянутый код будет работать, Но если Вы отправляете что-то как:
'Авторизация': 'Несущая' + YzE5ZTdiMjVlYzM5NjA2MGJkZTM5NjVlOTQ5YMmQ5ZjMwYjA0YmEzZmZjN2I1MmI4MDJkNQ, это перестанет работать
, или-----ниже кода также перестанет работать, я надеюсь, что u понимают основное различие
var token = YzE5ZTdiMjVlYzM5NjA2MGJkZTM5NjA0YmEzZmZjN2I1MmI4MDJkNQ;
var headers = {
Authorization: "Bearer " + token,
Accept: "application/json, text/plain, */*",
"Content-Type": "application/json"
};