Javascript 告诉Laravels验证器在何处查看验证请求数组
如果我使用“数据”选项使用axios验证我的前端表单,它将无法通过后端laravel应用程序中的验证Javascript 告诉Laravels验证器在何处查看验证请求数组,javascript,ajax,laravel,validation,axios,Javascript,Ajax,Laravel,Validation,Axios,如果我使用“数据”选项使用axios验证我的前端表单,它将无法通过后端laravel应用程序中的验证 axios.post('http://example.com/', { 'Content-Type': 'multipart/form-data', Accept: 'application/json', data: { email: 'email@email.com', password: '12345678', } }).then(res =>
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));
因此,这里我使用“数据”选项进行验证
$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
请求中添加标题
作为数据
。您的请求应如下所示:
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函数将第一个参数
作为url
,第二个作为数据
,第三个作为配置(标题等)
。
你可以阅读更多关于
谢谢。这是因为您正在axios
请求中添加标题作为数据。您的请求应如下所示:
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函数将第一个参数
作为url
,第二个作为数据
,第三个作为配置(标题等)
。
你可以阅读更多关于
谢谢。问题是,为什么需要在axios中添加数据
如果要添加数据
,则验证应如下所示:
$request->validate([
'data.email'=>'必填|字符串| email',
'data.password'=>'必需|字符串',
]);
问题是,为什么需要在axios中添加数据
如果要添加数据
,则验证应如下所示:
$request->validate([
'data.email'=>'必填|字符串| email',
'data.password'=>'必需|字符串',
]);
返回未经授权的。不确定原因。当然,因为如果您将axios发送的数据包装为数据
,则需要使用$request->get('data.email')
,而不是$request->get('email')
,来获取电子邮件。顺便说一句,你混合了标题和数据。为什么?您不需要使用data
包装数据,只需axios.post('http://example.com/“,{电子邮件:”email@email.com,密码:'12345678'})
返回未经授权的。不确定原因。当然,因为如果您将axios发送的数据包装为数据
,则需要使用$request->get('data.email')
,而不是$request->get('email')
,来获取电子邮件。顺便说一句,你混合了标题和数据。为什么?您不需要使用data
包装数据,只需axios.post('http://example.com/“,{电子邮件:”email@email.com,密码:'12345678'})