javascript - jQuery AJAX 请求未收到响应

标签 javascript php jquery ajax

我正在处理我正在制作的应用程序的一部分。

我需要发送 AJAX 请求以从 XML 文件中获取一些信息。服务器应该以子格式返回信息。我在服务器和客户端代码中一直使用相同的代码。所有其他功能都有效。这个函数甚至没有收到响应

在 PHP 服务器上我有这段代码:

主.php:

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

项目处理程序.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");        
}

我没有从 console.logs 得到任何类型的响应,当我在 Google Chrome 开发者工具的网络选项卡下查看时,我看到消息此请求没有可用的响应数据

项目 XML 文件示例:

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

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

最佳答案

你正在发送这个

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

您正在从客户端和服务器端发送 fn=rload

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

您正在将它与 rLoad 进行比较。这永远不会是真的。 'rload'!='rLoad'

关于javascript - jQuery AJAX 请求未收到响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32810555/

相关文章:

javascript - 在分布式环境中拆分数组以找到两个子数组之和之间的最小差异

javascript - jQuery - 使用多个数据搜索选择器

php - 将 ODBC 添加到 MAMP

jquery - 如何使 jQuery Sticky Float 插件对页面更改做出实时 react ?

javascript - 动画左不能在页面滚动上工作

javascript - 另一个带有 slidesjs 的 slider 内的 slider

php - 如何手动创建 $_FILES 文件对象?

php - Magento 2 - 多选自定义产品属性的过滤器集合

jquery - 如何在jQuery中获取正在单击的元素的ID

jquery - 等待 .html() 加载,然后执行某些操作