2012-06-08 25 views
0

我最近交換了我的symfony2包路由使用內聯註釋在控制器中,而不是一個routing.yml文件。之後,ajax post請求開始通過,沒有參數。我看着它,發現日誌顯示的請求是[REQUEST_METHOD] => GET。脫掉註釋路線將請求轉到一個帖子。在我切換路由之前,這件事完全正常。symfony2 ajax後變得使用註釋路由

這裏的控制器和路線

class DefaultController extends Controller 
{ 

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

和jQuery的AJAX

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

如果我使用捲曲張貼到相同的URL,它在日誌中作爲後顯示出來。

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

如果任何人都可以驗證他們正在經歷相同的行爲,這將是非常有幫助的 – seans

回答

0

我的基於註釋的路由通過POST執行Ajax調用沒有問題。與你的設置有幾點不同:我沒有在控制器中使用@Method註釋,而(FWIW)我的jQuery Ajax方法值全部大寫。例如:

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

而jQuery的(我用嫩枝設置路徑):

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

及相關的routing.yml線:

AcmeDemoBundle: 
resource: "@AcmeDemoBundle/Controller/" 
type:  annotation 
prefix: /
+0

我只是添加了@Method和小寫後測試這個問題,所以我不認爲這是它。你的主要路由文件(/symfony/app/config/routing.yml)註釋定義是什麼樣子的? – seans

+0

routing.yml文件中唯一相關的行是指導路由器查看註釋以定義路徑的那些行:'AcmeDemoBundle: resource:「@AcmeDemoBundle/Controller /」 type:annotation prefix:/' –

+0

yep,我的外表完全一樣。這是一個奇怪的 – seans