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 を変更すると、エラーは表示されず、すべて正常に動作します。この問題を解決するにはどうすればよいですか? データを 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 に答える