1

Silex を使用してサイトにフォームを作成しようとしていますが、データを POST すると 405 エラーが発生します。Silex フォーム ジェネレーターは使用していません。ただのHTML。データの POST を防止する Silex の設定はありますか? GET は正常に動作します。

HTML:

<form name='login' action='' method='POST'>
    Username: <input type='text' name='user' value=''><br />
    Password: <input type='password' name='pass' value=''><br />
    <input type='submit' name='submit' value='Submit'>
</form>
4

1 に答える 1

0

HTTP の 405 ステータス コードは、メソッドが許可されていないことを意味します。この場合、その URL のルートを定義したことを意味しますが、投稿リクエストは受け入れません。これはおそらく次のようになります。

$app->get("/myform", function () use ($app) {});

URL 自体が一致しても、これは GET 以外には一致せず、それ以外はすべて 405 になります。次の 2 つの選択肢があります。

  1. でPOSTコントローラーを作成します$app->post()
  2. 両方を受け入れるコントローラーを作成します$app->match()

2 番目のパスをたどる場合は、次のパターンをお勧めします。

$app->match("/myform", function (Request) use ($app) {
    if ($request->isMethod("post")) {
        // process post data
    }
});
于 2013-05-02T18:28:39.170 に答える