Jquery:$ .ajax(json数据类型)的问题

时间:2011-09-29 15:29:57

标签: ajax jquery

我在页面中刷新集团时遇到问题。

以下是请求:

> $("#pwd_lost_link").click(function(){
    alert('1');
    $.ajax({
      type : 'POST',
      url: 'test.php',
      dataType: 'json',
      data :{"nom" : "akbar"},
      success : function(data){
        $("#main_bloc").append(data.msg);
        alert('2');
      },
      error : function(XMLHttpRequest, textStatus, errorThrown) {
                alert(XMLHttpRequest.responseText);
                                alert(errorThrown);             }
    });   })

这是php文件

<?php  
 $return['nom'] = "ffrfrfrfr";
  echo json_encode($return)
?> 

它不起作用。它给我一个状态错误(0),页面自动重新加载

由于

迈克尔

2 个答案:

答案 0 :(得分:2)

令人困惑的问题迈克尔,不确定你的意思是“页面会自动重新加载”,但你应该做两件事:

在$ .ajax()方法中,确保回调成功正确处理数据。您正在寻找data.msg,但我看不到.msg的来源。

    $.ajax({
        type: "GET",
        contentType: "application/json; charset=utf-8",
        data: {},
        dataType: "json",
        url: url,
        success: function(data) {
            // parse data object so you can see what's being returned ex. alert(data) or alert(data[0]) or alert(data.nom)
        },
        error: function (xhr, status, error) {
            // XHR DOM reference: http://www.w3schools.com/dom/dom_http.asp
            // check for errors  ex. alert(xhr.statusText);              
        } 
    });

在PHP方面,您可能希望在那里进行调试以查看正在接收的内容以及您要发回的内容。

除了使用像Firebug或Chrome的内置实用程序(CTRL + SHIFT + I)这样的XHR查看器之外,它非常有帮助。

最后一点,如果pwd_lost_link是链接元素a id="pwd_lost_link" href="..." ,那么在处理AJAX之前,您必须停止浏览器关注链接。

$("#pwd_lost_link").click(function(e) {
    e.preventDefault(); 
    alert('1');
    $.ajax({      
   ...
});

如果你没有看到'1'被警告,那肯定是你的第一个问题。

答案 1 :(得分:1)

您正在尝试访问data.msg,但您的PHP脚本仅创建data.nom。所以data.msg不存在。尝试将data.msg更改为data.nom,看看这是否符合您的要求。