我一直在尝试解决这个问题,但是找不到能够执行完整堆栈跟踪的好函数。这是我到目前为止所做的:
Javascript(在页面/charts/userbase.php
中):
$.ajax({
url: '/data/users.php',
dataType: 'json',
error: function() {
console.log("I'm hitting an error.");
},
success: function(jsonData) {
// do something
}
});
/data/users.php(应该转储JSON)
<?php
//some processing precedes this
$data = json_encode($data, JSON_NUMERIC_CHECK);
$data = str_replace("\/", "/", $data);
$data = str_replace("\"", "", $data);
header("Content-type: application/json");
echo $data;
?>
访问127.0.0.1/data/users.php会返回正确的JSON,但不知怎的,我无法让jQuery的$.ajax()
起作用,而且我似乎找不到任何关于如何输出a的好文档堆栈跟踪如果失败。关于我做错了什么想法?
编辑:该死的,这是很多回复,非常快。
首先,我对JSON字符串进行后处理,因为PHP不断将/
更改为\/
,JS的本机Date()
无法处理,并且它不断添加{{ 1}},它打破了期望布尔值的部分代码。我已经确认它正在返回正确的输出。
其次,更改"
添加error
打印jsonData
,undefined
返回一个对象,error(jqXHR, textStatus, errorThrown)
200。
也许我错了,这不是ajax电话,但我现在更加困惑。
编辑2 :使用status
投放,我收到了console.log(arguments)
。我会仔细看看,但我没有看到我的错误。
上次修改:原来每个人都在最后一行;不应该替换parseError
。但仍然需要"
。我觉得很愚蠢我花了几个小时来解决这个问题。
答案 0 :(得分:1)
查看http://api.jquery.com/jQuery.ajax/
如果您尝试
会发生什么$.ajax({
url: 'data/users.php',
dataType: 'json',
error: function() {
console.log("I'm hitting an error.");
console.log(arguements);
},
success: function(jsonData) {
// do something
console.log(jsonData);
}
});
您应该看到控制台日志说明发生错误,因为您在编码后修改了json字符串。
编辑:
你说你的JSON很好。尝试使用此方法验证http://jsonlint.com/
答案 1 :(得分:0)
你可以把它添加到你的ajax:
contentType: "application/json",