有关ajax数据类型的问题

时间:2014-08-11 18:25:48

标签: javascript jquery ajax

我对ajax脚本有疑问。

是否有必要在每个ajax脚本中放置datatype: 'json'

什么时候放datatype: 'json'

我对此提出质疑,因为我有一个ajax脚本只有在我删除datatype: 'json'时才有效,而且我还有一个需要datatype: 'json'正确运行的ajax脚本。

我对何时使用datatype: 'json'感到困惑......我只是一个新手。

我的脚本示例,只有在我删除数据类型时才会运行:

var email = $('#email').val();
var password = $('#password').val();    
    $.ajax({
        data: {
         email : email, password : password
        },
        type: "POST",
        url: 'Oppa/view/user.php',
        success: function(data)
        {
           if (Number(data) == 1)
                {           
            $(".show-page[data-page=progBar]").trigger("click");
            $('#myModal').modal('hide');
                }
            else
                {
              $('div#show:empty').show();
              $('#show').html(data);
                }
        }
    });

    return false;

2 个答案:

答案 0 :(得分:2)

datatype:'json'用于向jQuery指定您期望作为响应的内容。这不应该与您发送的数据类型混淆。要指定要发送的数据类型,请使用标题content-type:"application/json"

你的ajax仅在你移除它时才有效的原因只能通过url返回除JSON以外的东西来解释。当发生这种情况时,jQuery将尝试将非JSON解析为JSON,这将导致错误。

答案 1 :(得分:0)

根据$(ajax) documentation

  

您期望从服务器返回的数据类型。

意思是,您必须弄清楚服务器发回的数据类型。在您的情况下,我认为这将在您的user.php文件中的某处指定(查找 $ _ POST [' someValue'] )。

您的某个AJAX调用无法正常工作的原因是因为您很可能正在处理其他类型的数据,例如 text html