2012-08-06 36 views
0

我是symfony2的新手。基本上我想發送一個變量name到一個名爲sub.html.php的文件。我想提出一個Ajax請求如下:無法得到symfony2中ajax請求的響應

function onsub() 
    { 
     alert(document.getElementById('source').value); 
     var http=new XMLHttpRequest(); 
     var name="rohit"; 
     http.open("POST", {{path('task1')}}, false); 


     http.onreadystatechange = function() 
     { 
     alert(http.status); 
      if(http.readyState == 4 && http.status == 200) 
      { 

       alert('i m back'); 
      } 
      else 
      { 
       alert('sorry'); 

      } 
     } 

     http.send(); 
     return false; 
    } 

我已經定義的task1路線如下:

task1: 
    pattern: /task1/ 
    defaults: {_controller:AcmeTaskBundle:Task:task1} 

和TaskController我已經定義task1Action如下:

public function task1Action() 
    { 
    return $this->render('AcmeTaskBundle:Default:sub.html.php'); 
    } 

但我無法無論如何調用sub.html.php文件。我怎樣才能調用這個文件?

+0

你不「來電」 sub.html.php,你犯了一個請求一個URL,它被映射到一個控制器和一個動作。你的'task1'路線是否暴露給客戶端? – JamesHalsall 2012-08-06 07:27:43

+0

是的,我已經這樣做了。當我像這樣調用文件時:http.open(「POST」,「{{path('task1')}}?field =」+ name,false);那麼在http.responseText中,它會返回sub.html.php文件的完整代碼。如果我想將數據發送給控制器,那麼我該怎麼做? – ucerturohit 2012-08-06 07:40:20

+0

到什麼控制器?它已經通過你的'TaskController' - >'task1Action()' – JamesHalsall 2012-08-06 11:45:19

回答

0

您可以轉發來自TaskController::task1Action()像這樣的請求......

$response = $this->forward('VendorOtherBundleName:ControllerName:ActionName', array(
    'some_variable' => $value 
)); 

你可以閱讀更多here

+0

當我添加這個東西,然後,我得到的Ajax響應爲500 – ucerturohit 2012-08-06 12:58:56