const AUTH = () => { const params = JSON.stringify({ user: { user_type: 'customer', mobile: '8349222680', password: '12345', }, }); const url = 'https://salon-host-dev.herokuapp.com/api/v1/logins/'; axios .post(url, { headers: { 'content-type': 'application/json', }, body: JSON.stringify({ data: 'data=' + JSON.stringify(params), }), }) .then(response => { console.log('--->', response.status); }); };Estoy tratando de obtener una respuesta de la url, pero no puedo hacerlo si Params pasó en json de cuerpo sin procesar en cartero, entonces estoy obteniendo la respuesta esperada pero no en el siguiente código, por favor ayuda
La sintaxis para la solicitud de publicación de axios está a continuación
axios.post(url, params, {headers: {'Content-Type':'application/json'}}) .then()El encabezado debe ser el tercer argumento del método POST.
axios (y axios.post para el caso) se puede llamar como axios.post(config) axios.post(url[, config]) axios.post(url[, data [, config]]) .... así que He elegido el segundo patrón,
los datos para enviar están en la propiedad de data , NO en la propiedad del body -
también NO necesita enviar JSON, puede enviar el objeto
tan dado
const params = { user: { user_type: 'customer', mobile: '8349222680', password: '12345', }, }; const url = 'https://salon-host-dev.herokuapp.com/api/v1/logins/';Puedes
axios.post({ url: url, headers: { 'content-type': 'application/json', }, data: params, })o
axios.post(url, { headers: { 'content-type': 'application/json', }, data: params, })o
axios.post(url, params, { headers: { 'content-type': 'application/json', } })Además, si cambia el nombre de parámetros a datos
const data = { user: { user_type: 'customer', mobile: '8349222680', password: '12345', }, };y crear una variable de encabezados
const headers = { 'content-type': 'application/json', };puedes hacer cualquiera de las siguientes
axios.post(url, data, { headers }); axios.post(url, {data, headers}); axios.post({url, data, headers});