1

我有这样定义的路线:

order_request:
class: sfDoctrineRouteCollection
options:
model:                OrderRequest
module:               order
prefix_path:          /order
column:               id
with_wildcard_routes: true

尝试以这种方式使用 ajax 从表单发布数据。

$.post('order/1578/exportPostsToProject', jsonString, function(data) {
    ...
});

1578 是订单的 ID。Id 不是严格要求的,但它就在那里。但问题是,一旦我尝试使用 POST 执行 ajax 请求,我就会收到此错误:

POST http://184.95.x.xx/backend.php/order/1578/exportPostsToProject 404 (Not Found) 

如果我在 GET 中更改 POST,则不会出现错误并且一切正常。我怎么解决这个问题 ?我需要发布数据。

我的控制器:

public function executeExportPostsToProject(sfWebRequest $request)
{

    $orderRequest = $this->getRoute()->getObject();
    $this->order_request = $orderRequest;
    $this->orderPostList = $orderRequest->getOrderGeneratedPosts();

    if ($request->isXmlHttpRequest())
   {
        $settingsString = $request->getParameter('settingsStr');
   }
}
4

1 回答 1

1

您应该将对象路由添加到明确允许 POST 请求的集合。例如:

order_request:
    class: sfDoctrineRouteCollection
    options:
        model:                OrderRequest
        module:               order
        prefix_path:          /order
        column:               id
        with_wildcard_routes: true
        object_actions:
            export: [get, post]
于 2013-08-20T20:11:39.500 回答