0

最近、symfony2 バンドルのルーティングを、routing.yml ファイルではなくコントローラーでインライン アノテーションを使用するように切り替えました。その後、パラメータなしで ajax ポスト リクエストが送信されるようになりました。調べてみると、ログに投稿リクエストが [REQUEST_METHOD] => GET として表示されていることがわかりました。注釈付きルートを削除すると、リクエストが投稿に変わりました。ルーティングを切り替える前は、問題なく動作していました。

ここにコントローラーとルートがあります

class DefaultController extends Controller
{

  /**
   * @Route("/emailShare/", name="emailShare")
   * @Method({"GET", "POST"})
   */
  public function indexAction()

そしてjquery ajax

$.ajax({
        type : 'post',
        url: '/v2/social/emailShare',

curl を使用して同じ URL に投稿すると、ログに投稿として表示されます。

curl -d "param1=value1&param2=value2" http://mysite.com/v2/social/emailShare/
4

1 に答える 1

0

私の注釈ベースのルートは、問題なく POST 経由で Ajax 呼び出しを実行します。セットアップとの違いがいくつかあります。コントローラーで @Method アノテーションをまったく使用していません。(FWIW) jQuery Ajax メソッドの値はすべて大文字です。例えば:

class DefaultController extends Controller
   {
    /**
     *
     * @Route("/", name="emailShare")
     */
    public function indexAction()

そしてjQuery(パスを設定するためにTwigを使用しています):

  $.ajax({
      type: 'POST',
      url: '{{path("emailShare")}}',

関連する routing.yml 行:

AcmeDemoBundle:
resource: "@AcmeDemoBundle/Controller/"
type:     annotation
prefix:   /
于 2012-06-13T16:23:49.897 に答える