Php 为什么';提交表格后,我的POST请求会变成GET请求吗?

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]

我使用的是带有React.js前端的Laravel(8)后端。在我的代码中,我向服务器发出POST请求。数据已成功发送到数据库,但控制台中没有响应

相反,它以某种方式将POST请求变成GET请求,我不知道为什么。我之所以知道它会变成GET请求,是因为我在提交表单并通过网络选项卡进行验证时,在URL中看到了参数

这几天我一直在尝试调试,但似乎没有任何效果-我尝试了所有的方法和所有的建议来解决这个问题,但没有任何效果。我做错了什么

React.js代码:

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请求