【发布时间】:2022-01-23 17:52:48
【问题描述】:
我正在使用前端 React 和后端 Laravel 8 开发用户注册功能。当输入字段有效时,它工作正常。但是,即使任何输入字段在后端验证中失败,它也会抛出一个错误,指出“访问已被 CORS 策略阻止”。 Here is an image of the error。我的问题是为什么在输入字段有效时一切正常,但在失败时抛出不相关的错误。以下是我的代码:
前端(反应)
const register = async(values) => {
const {email, serial, password, confirm_password} = values;
const details = {email : email, serial : serial, password: password, password_confirmation : confirm_password};
try {
const result = await fetch('http://192.168.1.15:8000/api/v1/register', {
method: 'POST', // or 'PUT'
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify(details),
})
const data = await result.json();
if (data.error) {
console.log(data.error)
}
else {
setUser(data.data)
cookies.set('Noortap', data.data, { path: '/' });
console.log(cookies.get('Noortap'))
}
}
catch (err) {
console.log(err)
}
}
后端(Laravel)
public function register(Request $request)
{
$request->validate([
'name' => 'max:255',
'email' => 'required|unique:users,email|email|max:255',
'serial' => ['required','max:255', new IsValidSerialNumber],
'password' => 'required|confirmed',
]);
$user = User::create([
'name' => $request->name,
'email' => $request->email,
'is_admin' => 0,
'password' => Hash::make($request->password)
]);
\App\Models\Tag::where('serial_number', $request->serial)->update([
'assigned' => 1,
'user_id' => $user->id
]);
// // response
// return $this->login($request);
return $request;
}
【问题讨论】:
-
CORS 标头添加到响应中,但是验证异常将阻止添加它们的中间件运行。这可能不是一个大问题。
标签: reactjs laravel validation cors