jQuery的.ajax()不能使用PHP

时间:2012-02-22 20:08:05

标签: php jquery ajax json

我一直在尝试解决这个问题,但是找不到能够执行完整堆栈跟踪的好函数。这是我到目前为止所做的:

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打印jsonDataundefined返回一个对象,error(jqXHR, textStatus, errorThrown) 200。

也许我错了,这不是ajax电话,但我现在更加困惑。

编辑2 :使用status投放,我收到了console.log(arguments)。我会仔细看看,但我没有看到我的错误。

上次修改:原来每个人都在最后一行;不应该替换parseError。但仍然需要"。我觉得很愚蠢我花了几个小时来解决这个问题。

2 个答案:

答案 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",