首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jQuery AJAX请求未收到响应

jQuery AJAX请求未收到响应
EN

Stack Overflow用户
提问于 2015-09-27 17:08:28
回答 2查看 1.2K关注 0票数 1

我在申请的一部分中遇到了麻烦。

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

在PHP服务器上,我有以下代码:

Main.php:

代码语言:javascript
运行
复制
if($_GET["fn"] == "rLoad")
{
    echo $handlerP->toJSON($handlerP->getPRoles($_GET["projectID"]));
}

ProjectHandler.php:

代码语言:javascript
运行
复制
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;
}

在客户端,我使用以下代码:

代码语言:javascript
运行
复制
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的开发工具中查看网络选项卡时,我看到了消息this request has no response data available

项目XML文件的示例:

代码语言:javascript
运行
复制
<projects>
    <project>
        <id>adultScotland</id>
        <name>Adults(Scotland)</name>
        <roles>
            <role>
                <id>projectM</id>
                <name>Project Manager</name>
            </role>

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

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-27 18:01:48

你要寄出这个

代码语言:javascript
运行
复制
var data = {
  "fn" : "rload",
  "projectID": project,
  "ajax" : "true"
};

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

代码语言:javascript
运行
复制
if($_GET["fn"] == "rLoad")
{
    echo $handlerP->toJSON($handlerP->getPRoles($_GET["projectID"]));
}

您正在将其与rLoad进行比较。这是不可能的。'rload'!='rLoad‘

票数 2
EN

Stack Overflow用户

发布于 2015-09-27 17:50:59

在客户端尝试使用dataType:'xml',并检查请求的域是否与原始域不同。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32810555

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档