Как установить заголовок и параметры в axios?
Я использую Axios для выполнения HTTP-сообщения, подобного этому:
import axios from 'axios'
params = {'HTTP_CONTENT_LANGUAGE': self.language}
headers = {'header1': value}
axios.post(url, params, headers)
Это правильно? Или я должен сделать:
axios.post(url, params: params, headers: headers)
Ответы
Ответ 1
Axios может использоваться любым из следующих способов:
// Make a request for a user with a given ID
axios.get('/user?ID=12345')
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
// Optionally the request above could also be done as
axios.get('/user', {
params: {
ID: 12345
}
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
затем для почтового запроса:
axios.post('/user', {
firstName: 'Fred',
lastName: 'Flintstone'
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
Не забудьте импортировать библиотеку axios, прежде чем делать ajax-вызов с помощью axios
Ответ 2
Есть несколько способов сделать это:
-
Для одного запроса:
let config = {
headers: {
header1: value,
}
}
let data = {
'HTTP_CONTENT_LANGUAGE': self.language
}
axios.post(URL, data, config).then(...)
-
Для установки глобальной конфигурации по умолчанию:
axios.defaults.headers.post['header1'] = 'value' // for POST requests
axios.defaults.headers.common['header1'] = 'value' // for all requests
-
Для установки по умолчанию для экземпляра axios:
let instance = axios.create({
headers: {
post: { // can be common or any other method
header1: 'value1'
}
}
})
//- or after instance has been created
instance.defaults.headers.post['header1'] = 'value'
//- or before a request is made
// using Interceptors
instance.interceptors.request.use(config => {
config.headers.post['header1'] = 'value';
return config;
});
Ответ 3
Вы можете отправить запрос на получение с заголовками (например, для аутентификации с помощью jwt):
axios.get('https://example.com/getSomething', {
headers: {
Authorization: 'Bearer ' + token //the token is a variable which holds the token
}
})
Также вы можете отправить запрос по почте.
axios.post('https://example.com/postSomething', {
email: varEmail, //varEmail is a variable which holds the email
password: varPassword
},
{
headers: {
Authorization: 'Bearer ' + varToken
}
})
Мой способ сделать это, установить запрос так:
axios({
method: 'post', //you can set what request you want to be
url: 'https://example.com/request',
data: {id: varID},
headers: {
Authorization: 'Bearer ' + varToken
}
})
Ответ 4
Вы можете передать объект конфигурации в axios, например:
axios({
method: 'post',
url: '....',
params: {'HTTP_CONTENT_LANGUAGE': self.language},
headers: {'header1': value}
})
Ответ 5
Это простой пример конфигурации с заголовками и responseType:
var config = {
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
responseType: 'blob'
};
axios.post('http://YOUR_URL', this.data, config)
.then((response) => {
console.log(response.data);
});
Content-Type может быть "application/x-www-form-urlencoded" или "application/json", и он может работать также "application/json; charset = utf-8"
responseType может быть "arraybuffer", "blob", "document", "json", "text", "stream",
В этом примере this.data - это данные, которые вы хотите отправить. Это может быть значение или массив. (Если вы хотите отправить объект, вам, вероятно, придется его сериализовать)
Ответ 6
Вы можете инициализировать заголовок по умолчанию axios.defaults.headers
axios.defaults.headers = {
'Content-Type': 'application/json',
Authorization: 'myspecialpassword'
}
axios.post('https://myapi.com', { data: "hello world" })
.then(response => {
console.log('Response', response.data)
})
.catch(e => {
console.log('Error: ', e.response.data)
})
Ответ 7
если вы хотите сделать запрос get с параметрами и заголовками.
var params = {
paramName1: paramValue1,
paramName2: paramValue2
}
var headers = {
headerName1: headerValue1,
headerName2: headerValue2
}
Axios.get(url, {params, headers} ).then(res =>{
console.log(res.data.representation);
});