首页 文章

Ajax调用失败; xhr.responseXML未定义

提问于
浏览
0

我正在尝试进行简单的ajax调用:

当用户选择并选项时,有关该选项的一些信息将回显到div中(这是动态的)

这是我的ajax调用代码

ajax.js

$(document).ready(function()
{ 
//Add Event 
    //Currently Broadcasting @Zone 
    $('#beacon0').on('change', function () 
    {
        var Selected = $(this).find("option:selected");
        var SelectedText   = Selected.text();
        var SelectedEncoded = encodeURIComponent(SelectedText);

        $.ajax
        ({
        url:        'ajax-addevent.php',
        data:       'n_beacon='+ SelectedEncoded,
        dataType:   'JSON',
        success: function(returnClass)
            {
                var resultajax = jQuery.parseJSON(returnClass)
                console.log(resultajax);
            },
        error: function(xhr, status, error) 
            {
                var errors = JSON.parse(xhr.responseText);
                console.log("failed");
                console.log (errors);
            }
        });
    });

});

所以ajax调用应该在URL中给出区域的名称,所以我可以在我的PHP脚本中$ _GET参数 . 这是我运行的php只是为了测试ajax调用 .

ajax-addevent.php

<?php
include("classes/event.class.php");

$event = new Event();
$GetZoneName = $_GET['n_beacon'];
$ZoneName = urldecode($GetZoneName);
$arrayDetails = $event->getBeaconEvent($ZoneName);
while($row = mysqli_fetch_array($arrayDetails))
{
        $EventTitle = $row["n_title"];
        $EventLink = $row["n_link"];
        $EventDate = $row["n_date"];
}
        $arr = array( "EventTitle" => $EventTitle,
                           "EventLink" => $EventLink, 
                           "EventDate" => $EventDate );

        header("content-type:application/json");

        $json_arr = json_encode($arr);

        return $json_arr;
?>

我的问题是ajax调用失败并给我这个结果:

Error

我的ajax电话有什么问题?你能帮我吗?

EDIT Update Code:

1 回答

  • 0

    当返回的数据类型为JSON时,您尝试获取XML响应 - xhr.responseXML将始终未定义,除非响应是有效的XML .

    请尝试使用xhr.responseText . 您可以使用JSON.parse(xhr.responseText)从中获取javascript对象 .

    另一个好方法是使用当前浏览器的开发工具直接检查网络响应(在Firefox或Chrome中为F12,然后打开“网络”选项卡) .

相关问题