Javascript 无法在vue.js中的axios中发布
我尝试过这个代码Javascript 无法在vue.js中的axios中发布,javascript,axios,Javascript,Axios,我尝试过这个代码 axios .post("http://localhost:3010/user/login", { headers: { "Content-type": "application/json" }, body: JSON.stringify({ username: "username", password: "password" }) }) .then(response => { thi
axios
.post("http://localhost:3010/user/login", {
headers: {
"Content-type": "application/json"
},
body: JSON.stringify({ username: "username", password: "password" })
})
.then(response => {
this.resp = response;
})
.catch(e => {
console.error(e);
});
但响应它无效登录,但它在邮递员工作
怎么了
在这样的网络响应中
当您使用post发送对象时,它会转换为字符串,因此您有效地发送到API端点的是:
JSON.stringify(JSON.stringify({用户名:“用户名”,密码:“密码”}))
没有这个必要
此外,您不会将正文作为标题的一部分发送
post(url[,数据[,配置]])
在您的例子中,这意味着您发送三个参数:url、数据和选项。由于您发送的唯一头是json数据,axios可以为您处理这些数据,因此不需要本例中的选项,因此您可以只使用前两个参数
axios
.邮政(
"http://localhost:3010/user/login",
{
用户名:“用户名”,
密码:“密码”
}
)
。然后(响应=>{
this.resp=响应;
})
.catch(e=>{
控制台错误(e);
});
更改标题
来自:
headers: {
"Content-type": "application/json"
}
至
headers: {
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
}
现在试一试,它对我很有效为什么不做一个简单的
axios.post(“http://localhost:3010/user/login“,{username:“username”,password:“password”})
并让Axios和Laravel处理标题和JSON。为什么要设置内容类型
,为什么要字符串化
ing?非常确定axios在默认情况下以JSON的形式发送。我猜它认为您发送的是实际的“字符串”,而不是JSON对象。看起来您的数据和选项混淆了。