Error: Request failed with status code 400 - AXIOS NODEJS
15,917
I added 'Content-Type': 'application / json' in the headers and it worked
Author by
Wellington Chrystian
Updated on December 18, 2022Comments
-
Wellington Chrystian over 1 year
I have a problem connecting to the api by axios
Error: Request failed with status code 400
Can someone help me please?
My services/api.js: `
const axios = require("axios"); const api = axios.create({ baseURL: "https://url.com" }); api.interceptors.request.use(async config => { config.headers.access_token = `token123`; return config; }); module.exports = api;
My controller:
const api = require('services/api'); router.post('/', async (req, res) => { try { const response = await api.post("/api", JSON.stringify(data)); return response; } catch (err) { return res.status(400).send({ erro: err }) } }) module.exports = app => app.use('/routes', router)
But while I make the request, I get the error
{ "erro": { "message": "Request failed with status code 400", "name": "Error", "stack": "Error: Request failed with status code 400\n at createError (/Library/WebServer/Documents/api/node_modules/axios/lib/core/createError.js:16:15)\n at settle (/Library/WebServer/Documents/api/node_modules/axios/lib/core/settle.js:17:12)\n at IncomingMessage.handleStreamEnd (/Library/WebServer/Documents/api-nex/node_modules/axios/lib/adapters/http.js:236:11)\n at IncomingMessage.emit (events.js:228:7)\n at endReadableNT (_stream_readable.js:1185:12)\n at processTicksAndRejections (internal/process/task_queues.js:81:21)", "config": { "url": "/api", "method": "post", "data": "{"\myjson\": "\json\"}", "headers": { "Accept": "application/json, text/plain, */*", "Content-Type": "application/x-www-form-urlencoded", "access_token": "token123", "User-Agent": "axios/0.19.2", "Content-Length": 398 }, "baseURL": "https://url.com", "transformRequest": [ null ], "transformResponse": [ null ], "timeout": 0, "xsrfCookieName": "XSRF-TOKEN", "xsrfHeaderName": "X-XSRF-TOKEN", "maxContentLength": -1 } } }
-
shkaper about 4 yearsIt looks like you're sending JSON data with
application/x-www-form-urlencoded
content type - something's not right here. What kind of data does your API really expect? -
Wellington Chrystian about 4 yearsThe API expects JSON format so I used JSON.stringify to convert. I did a test with lib request using the same data and it worked but with axios it didn't work
-
Wellington Chrystian about 4 yearsI did change in my headers but didn't work too. const response = await api.post("api", JSON.stringify(data), { headers: { 'Content-Type': 'application/json', } } );
-