2015-09-27 229 views
1

我對我正在製作的應用程序的一部分有些麻煩。Jquery AJAX請求沒有收到響應

我需要發送一個AJAX請求來從XML文件中獲取一些信息。服務器應該以子格式返回信息。我一直在服務器端和客戶端代碼中使用相同的代碼。所有其他功能的工作。該功能甚至沒有收到響應

在PHP服務器,我有這樣的代碼: Main.php:

if($_GET["fn"] == "rLoad") 
{ 
    echo $handlerP->toJSON($handlerP->getPRoles($_GET["projectID"])); 
} 

ProjectHandler.php:

function getPRoles($projectID){ 
    $sort = new ModuleSorter(); 
    $xml = self::getxml(); 
    $result = array(); 
    foreach($xml->children() as $project){ 
     if($project->id == $projectID){ 
      foreach($project->roles->children() as $role){ 
       array_push($result, array('id' => $role->id, 'name' => $role->name)); 
      } 
     } 
    } 
    $res = $sort->alphabetically($result); 
    return $res; 

} 

function toJSON($data){ 
    $result = json_encode($data); 
    return $result; 
} 

function getXml(){ 
    $xml=simplexml_load_file("../data/projects.xml") or die("ERROR: Unable to read file"); 
return $xml; 
} 

從我用的是客戶端以下代碼:

function loadRoles(project){ 
    console.log("Starting role retrieval") 
    var data = { 
     "fn" : "rload", 
     "projectID": project, 
     "ajax" : "true" 
    }; 
    $.ajax({ 
     type: "GET", 
     url: SERVICE_URL, 
     data: data, 
     contentType: "application/json", 
     success: function(response) { 
     var i, list = ""; 
     console.log(response); 
      for (i = 0; i < response.length; i++) { 
       list += formatOption(response[i].id[0], response[i].name[0]); 
       $("#theRole").html(list).selectmenu('refresh'); 
      } 
      }, 
     done: function(response){ 
      console.log(response); 
     } 
    }); 
    console.log("end of role retrieval");   
} 

我沒有得到任何類型的回覆SE從console.logs,當我看從谷歌瀏覽器的開發者工具的網絡選項卡下我看到消息this request has no response data available

項目XML文件的示例:

<projects> 
    <project> 
     <id>adultScotland</id> 
     <name>Adults(Scotland)</name> 
     <roles> 
      <role> 
       <id>projectM</id> 
       <name>Project Manager</name> 
      </role> 

     </roles> 
    </project> 
</projects> 

如果任何人都可以看到事業這個問題我將不勝感激您的幫助:)

感謝

回答

2

您是發送從客戶端,你與RLOAD比較它的服務器

if($_GET["fn"] == "rLoad") 
{ 
    echo $handlerP->toJSON($handlerP->getPRoles($_GET["projectID"])); 
} 

這個

var data = { 
    "fn" : "rload", 
    "projectID": project, 
    "ajax" : "true" 
}; 

您發送FN = RLOAD。這永遠不會是真的。 'rload'!='rLoad'

+0

我不能相信我錯過了那個-_-謝謝 –

0

在客戶端嘗試使用數據類型:「XML」,並檢查請求的域名是不是原來的不同。