3

我正在尝试将表单数据发布到/cart/order/edit/但它似乎不起作用,更有趣的是它在本地工作但不是现场工作。

回应说

哎呀!发生错误
服务器返回“0 未找到“GET /cart/order/edit/”的路由:不允许方法(允许:POST)”。

路由看起来像 (php app/console router:debug)

cart_order                        GET    /cart/order/
cart_order_edit                   POST   /cart/order/edit/
cart_order_save                   POST   /cart/order/save

这是routing.yml

#
# All routes are set up in controller source files in src/*Bundle/Controller/*Controller.php
# using annotations.
#

# Set up Bundle
CartBundle:
    resource: "@CartBundle/Controller/"
    type:     annotation
    prefix:   /

浏览器中的请求标头说

POST /cart/order/edit/ HTTP/1.1

我试图找到一些意义,但没有

这是我要发布的表格:

<form  action="/../cart/order/edit/" method="POST" id="orderForm">

控制器中的路由:

 * @Route
 * (
 *    "/cart/order/edit/",
 *    name="cart_order_edit"
 * )
 *
 * @Method({"POST"})
4

3 回答 3

1

您尝试获取仅配置为 POST 请求的操作

你用过这样的东西吗?

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;

/**
 * @Route("/blog")
 */
class PostController extends Controller
{
    /**
     * @Route("/edit/{id}")
     * @Method({"GET", "POST"})
     */
    public function editAction($id)
    {
    }
}
于 2013-09-11T09:43:47.167 回答
0

当您没有提供任何代码供参考时,很难准确地说出哪里出了问题。但是,您必须检查以下内容:

routing.yml
你的 routing.yml 文件看起来如何?它应该类似于以下内容:

route_needed:
    pattern: /cart/order/edit/
    defaults: { _controller: CartBundle:Default:edit }
    requirements:
          _method: POST

您的表格
您的表格看起来如何?它应该类似于以下内容:

<form action="{{ path('route_needed' }}" method="post" {{form_enctype(edit)}}>
****whatever is in your form****
{{form_rest(edit)}}
</form>

但是,同样,我们不确切知道问题出在哪里,因为您没有提供任何代码。但是上面的例子来自我的一个正在运行的 Symfony2 项目。

于 2013-09-11T09:45:21.773 回答
0

我有同样的问题。在我的情况下是 .htaccess 重定向我的请求。我发送了帖子,它重定向为get。也许检查您的 htaccess 或服务器配置文件。

于 2017-01-24T09:31:40.547 回答