我试图做一个简单的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调用失败并给出了结果:
为什么我的ajax打电话有什么不对?你能帮忙吗?
编辑更新代码:
答案 0 :(得分:0)
当返回的数据类型为JSON时,您尝试获取XML响应 - xhr.responseXML将始终未定义,除非响应是有效的XML。
请尝试使用xhr.responseText。您可以使用JSON.parse(xhr.responseText)从中获取javascript对象。
另一个好方法是使用当前浏览器的开发工具直接检查网络响应(在Firefox或Chrome中为F12,然后打开“网络”选项卡)。