2014-02-26 60 views
0

我在ajax中使用symfony2時遇到ajax失敗。Ajax Json Symfony 2

任何想法?

HTML

   $.ajax({ 
        url: "{{ path('destination_app_ajax') }}", 
        type: "post", 
        data: { 
         "json" : JsonData 
        }, 
        success: function(JsonData){ 
          $('#result').html(JsonData); 

          /* Clear all Data */ 
          JsonData = ""; 
          localStorage.clear(); 
          alert("Data Sent!"); 

        }, 
         error:function(){ 
          alert('ajax failed');  
         } 
       }); 

控制器

public function ajaxAction(){ 

    $json = json_encode($_POST); 

    return new Response(array('json' => $json)); 


} 
+0

只是一個評論,但你應該看看在Symfony2中的'JsonResponse'對象類。比手動編碼你的響應更有用,它設置適當的頭文件等。此外,你應該進一步瞭解你從jQuery端服務器獲得的錯誤狀態 - 「jQuery.ajax()。error()」具有以下方法簽名:'類型:函數(jqXHR jqXHR,String textStatus,String errorThrown)'。一個狀態代碼可以在調試中發揮很大的作用... –

回答

1

您的回答應該是這樣的:

public function ajaxAction(){ 

    $json = json_encode(array('json' => $_POST)); 

    return new Response($json, 200, array('Content-Type'=>'application/json')); 
} 
+0

這不起作用,謝謝回覆,雖然 – Brent

+0

我編輯了我的答案。再試一次。 – dmnptr

+0

謝謝,我不得不添加使用Symfony \ Component \ HttpFoundation \ Request; 使用Symfony \ Component \ HttpFoundation \ Response;頂部 – Brent

1

試試這個,

echo json_encode(array('json' => $_POST)); 

腳本:

$.ajax({ 
     url: "{{ path('destination_app_ajax') }}", 
      type: "post", 
      data: { 
       "json" : JsonData 
      }, 
      success: function(data){ 
       $('#result').html(data.json); 
       /* Clear all Data */      
       localStorage.clear(); 
       alert("Data Sent!"); 

      }, 
      error:function(){ 
       alert('ajax failed');  
      } 
     }); 
+0

這可行,但爲什麼我需要退出它? – Brent