嗨,我在前端中使用vuejs,而后端则使用laravel。Laravel的作用仅是处理API。前端和后端是分开的,即我不使用Laravel的resource/js
文件夹中的VUEJ。
现在,我将Vuejs的Axios发布请求发送到Laravel。使用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
或某些根据验证或令牌检查中某些if
条件的errors
。我试图弄清此错误可能来自何处。我目前认为这可能是由于帖子请求中缺少csrf_token
。当我在Laravel之外发送请求时,表格中缺少CSRF_Token。我不是100%确定的。
所以我的问题是:
如何将
csrf_token
包括如果此
422 error
与csrf_token
无关,则可能导致这一点?像Min一样有没有预先的经历?还有任何解决方案?
事先感谢您的帮助。
请,修改捕获块AS @jack 建议:
.catch(error => {
console.log("ERRRR:: ",error.response.data);
});
现在您可以在捕获块中获取错误并处理错误。
.catch(function (error) {
console.log(error.response.data.errors);
});
请使用此代码我希望它可以。
我也面临着同样的问题,我认为这是由于vue.js中的API请求中缺少一些标题。这里有一些技巧可以帮助您解决此问题。
- 确保您是否保护您的API路线(通过Sanctum或其他方法(。如果您要保护,请确保您要在标题中发送身份验证令牌。
- 第二个确保您的请求(Axios或JWT(应包含有效的数据,如果您正在发送图像或文件等,请确保我们如何发送。
- 首先,通过 dd($ erquest-> all(((; 在Laravel中获取请求并在Laravel中检查..
这些错误可能是由于遵循原因引起的,请确保遵循以下步骤。将本地主机与本地虚拟机(主机(连接。在这里,I'am连接http://localhost:3001/to http://abc.test要遵循的步骤:
- 我们必须允许CORS,放置访问控制 - 允许孔:*在请求的标题中可能行不通。安装启用CORS请求的Google扩展名。
- 确保您在请求中提供的凭据有效。
- 确保已经提供了流浪者。尝试 Vagrant Up -provision 这使Local主机连接到宅基地的DB。
只需单击"开发工具"网络部分中的"预览"选项卡,您将查看实际错误消息。