Php 为什么';提交表格后,我的POST请求会变成GET请求吗?
我使用的是带有React.js前端的Laravel(8)后端。在我的代码中,我向服务器发出POST请求。数据已成功发送到数据库,但控制台中没有响应 相反,它以某种方式将POST请求变成GET请求,我不知道为什么。我之所以知道它会变成GET请求,是因为我在提交表单并通过网络选项卡进行验证时,在URL中看到了参数 这几天我一直在尝试调试,但似乎没有任何效果-我尝试了所有的方法和所有的建议来解决这个问题,但没有任何效果。我做错了什么 React.js代码:Php 为什么';提交表格后,我的POST请求会变成GET请求吗?,php,reactjs,laravel,debugging,Php,Reactjs,Laravel,Debugging,我使用的是带有React.js前端的Laravel(8)后端。在我的代码中,我向服务器发出POST请求。数据已成功发送到数据库,但控制台中没有响应 相反,它以某种方式将POST请求变成GET请求,我不知道为什么。我之所以知道它会变成GET请求,是因为我在提交表单并通过网络选项卡进行验证时,在URL中看到了参数 这几天我一直在尝试调试,但似乎没有任何效果-我尝试了所有的方法和所有的建议来解决这个问题,但没有任何效果。我做错了什么 React.js代码: const [name, setName]
const [name, setName] = useState("");
const [email, setEmail] = useState("");
const [password, setPassword] = useState("");
const [confirmPassword, setConfirmPassword] = useState("");
const handleSubmit = () => {
let data = {
'name': name,
'email': email,
'password': password,
'c_password': confirmPassword
};
JSON.stringify(data);
axios.post('http://website.test/api/register', data)
.then(resp => {
console.log(resp);
}).catch(error => {
console.log(error);
});
}
api.php:
Route::middleware(['cors'])->group(function () {
Route::post('/register', [RegisterController::class, 'register']);
});
RegisterController.php:
public function register(Request $request)
{
$validator = Validator::make($request->all(), [
'name' => 'required',
'email' => 'required|email',
'password' => 'required',
'c_password' => 'required|same:password',
]);
if ($validator->fails()) {
return $this->sendError('Validation Error.', $validator->errors());
}
$userId = 'u-' . Str::uuid()->toString();
$input = $request->all();
$input['password'] = bcrypt($input['password']);
$input['UserID'] = $userId;
$user = User::create($input);
$input['name'] = $user->name;
$success['token'] = $user->createToken('MyApp')->accessToken;
return $this->sendResponse($success, 'User registered successfully.', $input['UserID']);
}
cors.php
return [
'paths' => ['api/*'],
'allowed_methods' => ['*'],
'allowed_origins' => ['*'],
'allowed_origins_patterns' => [],
'allowed_headers' => ['*'],
'exposed_headers' => [],
'max_age' => 0,
'supports_credentials' => false,
]) 我不知道您的表单是什么样的,您是如何触发提交的,但我最好的猜测是您正在触发默认的表单提交操作,即GET请求
您需要通过添加
event.preventDefault()来防止表单这样做代码>位于提交处理程序的顶部。服务器响应的状态代码是什么?哇。。。非常感谢你。这就解决了这个问题,我现在可以在控制台中看到响应主体,并且在提交表单时URL中没有参数!但在我的“网络”选项卡中,出于某些奇怪的原因,它仍然显示为GET请求