1

我正在尝试使用 Silex 在网站上制作表单,但是当我发布数据时,它给了我 405 错误。我没有使用 Silex 表单生成器。只是 HTML。Silex 中是否有阻止 POST 数据的设置?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 状态码表示method not allowed,在您的情况下,这意味着您已经为该 url 定义了一个路由,但它不接受发布请求。这可能是这样的:

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

即使 url 本身匹配,除了 GET 之外的任何内容都不会匹配,其他所有内容都会导致 405。您有两个选择:

  1. 创建一个 POST 控制器$app->post()
  2. 创建一个同时接受的控制器$app->match()

如果你走第二条路,我推荐以下模式:

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