【发布时间】:2019-09-29 16:32:09
【问题描述】:
您好,我在前端使用 Vuejs,在后端使用 Laravel。 Laravel 的角色只是处理 API。前端和后端是分开的,即我没有在 Laravel 的 resource/js 文件夹中使用 Vuejs。
现在我从 Vuejs 向 Laravel 发送 Axios POST 请求。所有表单输入值都使用 HTML5 required 属性进行了预验证。而当我console.log请求数据时,它会显示所有填写的字段。
在 Vue 文件中:
const data = {
name: this.name,
gender: this.gender,
mobile_no: this.mobile_no,
image: this.userImage
};
console.log("Request data . . . .", data);
const response = await this.axios
.post(`${this.AppURL}/admin/user/create`, data, {
headers: {
"Content-Type": "multipart/form-data"
}
})
.then(() => {
console.log("Success. . . . ")
alert("Successfully Driver Added");
})
.catch(error => console.log(error));
在 Laravel 中,请求通过了一些验证。检查是否所有字段都已填写是一个简单的验证。
我也在使用JWTAuth包进行身份验证,令牌是由它生成的。
写到这里的代码太多了。但我相信你能理解我的意思。
我得到的回应是这样的
POST http://localhost:8000/api/admin/user/create 422 (Unprocessable Entity)
我期望得到的实际结果是success 或一些errors,即根据验证或令牌检查中的一些if 条件。
我试图弄清楚这个错误可能来自哪里。我目前认为这可能是由于 POST 请求中没有csrf_token。当我在 Laravel 外部发送请求时,表单中缺少 csrf_token。不过,我不是 100% 确定这一点。
所以我的问题是:
我如何在 Axios POST 请求中包含
csrf_token,何时我从 Laravel 外部发送它。如果此
422 error与csrf_token无关,可能是什么原因造成的?有没有像min这样的previos经验?以及任何解决方案?
提前感谢您的帮助。
【问题讨论】:
-
A 422 是一个验证错误,如果您查看请求的响应正文或
axios.catch回调中的控制台日志error.response.data,您可能会看到错误列表。跨度>
标签: laravel vue.js post axios http-error