gpt4 book ai didi

javascript - 告诉 Laravels Validator 在哪里查看验证请求数组

转载 作者:行者123 更新时间:2023-12-01 00:30:31 25 4
gpt4 key购买 nike

如果我使用“data”选项使用 axios 验证前端表单,则后端 Laravel 应用程序中的验证将失败。

axios.post('http://example.com/', {
'Content-Type': 'multipart/form-data',
Accept: 'application/json',
data: {
email: 'email@email.com',
password: '12345678',
}
}).then(res => console.log(res))
.catch(err => console.log(err));

所以这里我使用“data”选项来验证。

$request->validate([
'email' => 'required|string|email',
'password' => 'required|string'
]);

返回:422 电子邮件地址为必填项,密码为必填项。

这是请求的格式:

{Content-Type: "application/json", data: {email: "email@email.com", password: "12345678"}}

但是,如果我使用 axios 以这种方式提交表单,它会验证并且我已登录:

'Content-Type': 'multipart/form-data',
'Accept': 'application/json',
'email': 'email@email.com',
'password': '12345678',

所以我的问题是如何告诉验证器查看数据对象内部?

编辑1:根据请求 dd($request->attributes); 返回:

ParameterBag {#53
#parameters: []
}

最佳答案

这是因为您在 axios 请求中添加 headers 作为 data。你的请求应该是这样的:

const headers = {
'Accept': "application/json",
'Content-Type': "application/json",
};

let data: {
email: 'email@email.com',
password: '12345678',
};

axios.post('http://example.com/',data, {headers:headers})
.then( (response) => {
//do the stuff
})
.catch( (error) => {
// do the stuff
});

注意: axios post 函数将第一个 argument 作为 url,第二个作为 data 和第三个作为 config( header 等) 而在您的情况下,您将 header 与数据混合。您可以阅读有关 axios here 的更多信息

谢谢。

关于javascript - 告诉 Laravels Validator 在哪里查看验证请求数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58591259/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com