2014-01-12 83 views
-1

我有很大的問題,因爲我無法在Symfony中發出AJAX請求。Symfony 2,ajax

我在模板

$(document).ready(function() { 
    $(".data").change(change_selected); 
    }); 
    function change_selected(){ 
    $.ajax({ 
      type: "POST", 
      url: "{{path('validate')}}", 
      data: {'name' : 'kk'}, 
      cache: "false", 
      dataType: "html", 
      success: function(response) { 
       alert('asd'); 
      } 
    }); 
    } 

一些代碼,我與功能

/** 
    * @Route("/validate_form", name="validate") 
    * @Template() 
    */ 
    public function ajaxeAction() 
    { 

     if($request->isXmlHttpRequest()) { 
      $response = new Response(); 
      $output = array('success' => true); 
      $response->headers->set('Content-Type', 'application/json'); 
      $response->setContent(json_encode($output)); 
      return $response; 
     } 

    } 

當我運行螢火併更改輸入字段,然後放火返回錯誤「500內部服務器文本由控制器錯誤 - ... test/web/app_dev.php/validate_form「」

有人知道爲什麼嗎?

+0

它的服務器端錯誤,什麼是$請求?你不需要定義參數。 – Mutant

+0

1.查看您的服務器日誌/ Symfony WebDebugToolbar /實際服務器響應以查看錯誤詳細信息。 2.你應該使用'|來轉義由Twig的'path()'函數返回的輸出e(「js」)'修飾符。你也可以嘗試使用[FosJsRoutingBundle](https://github.com/FriendsOfSymfony/FOSJsRoutingBundle) - 非常方便的工具。 3. Symfony提供了一個內置的'JsonResponse'來處理JSON輸出。 – Crozin

回答

1

您沒有使用Request $ request初始化函數?

public function ajaxeAction(Request $request){..}