我从一个API得到了我的令牌,但不幸的是,我的API返回了400个错误的请求。我已经通过邮递员检查了我的应用程序接口,它在那里工作得很好。请告诉我解决方案或任何错误。
async componentWillMount(){
axios.post('http://api.myapiurl.com/token', {
grant_type: 'PASSWORD',
username: 'MY_USERNAME',
password: 'MY_PASSWORD'
}, {
headers: {
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
}
}).then(response => {
console.log(response.data)
}).catch(err => console.log("api Erorr: ", err.message))
}
以下响应错误
请求失败,状态代码为400-node_modules\axios\lib\core\createError. js:16:24在createError-node_modules\axios\lib\core\settle.js:18:6在结算-…框架内部还有10个堆栈帧
它是使用QueryString. stringify()
解决的。我只是将正文传递给QueryString.stringify()
,如下所示:
axios.post('http://api.apiurl.com/token', QueryString.stringify({
grant_type: 'MY_GRANT_TYPE',
username: 'MY_USERNAME',
password: 'MY_PASSWORD'
}), {
headers: {
"Content-Type": "application/x-www-form-urlencoded",
}
}).then(response => {
console.log(response.data)
}).catch(err => console.log("api Erorr: ", err.response))
据我所知,您正在发送json数据,但您的Content-Type
标头设置为application/x-www-form-urlencoded; charset=UTF-8
。
尝试使用fetch代替,可能是一些axiosbug,你不需要添加任何库,这里是一个例子:
fetch("http://api.myapiurl.com/token", {
method: "POST", // *GET, POST, PUT, DELETE, etc.
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify({
grant_type: "PASSWORD",
username: "MY_USERNAME",
password: "MY_PASSWORD"
})
})
.then(res => {
res.json();
})
.then(data => console.log(data)) // ur data is here
.catch(err => console.log("api Erorr: ", err));