简单的jquery ajax不工作

时间:2011-05-10 17:09:20

标签: jquery ajax

继承人我的阿贾克斯:

$('#savecustomer').click(function() {   
    $.ajax({
        type: "POST",
        url: "ajax-newcustomer.php",
        data: ({ name : $('#ncname').val(), address : $('#ncaddress').val(), postcode : $('#ncpostcode').val(), dob : $('#ncdob').val(), mobile : $('#ncmobile').val(), email : $('#ncemail').val() }),
        dataType: "json",
        success: function(data){
            alert('sc success');
            if (data == 'error')
            {
                $('#ncsuccess').attr('display', 'none');    
                $('#ncerror').attr('display', 'block');
            }
            else
            {               
                $('#ncname').val('Name');
                $('#ncaddress').val('Address');
                $('#ncpostcode').val('Postcode');
                $('#ncdob').val('Date of Birth');
                $('#ncmobile').val('Mobile Number');
                $('#ncemail').val('Email Address'); 

                $('#ncerror').attr('display', 'none');  

                $('#ncsuccess').html(data);                 
                $('#ncsuccess').attr('display', 'block');                   
            }
        }
    });
});
它根本没有向我显示警报。这意味着它没有成功......我猜它与数据有关:格式。

4 个答案:

答案 0 :(得分:2)

在没有()

的情况下,数据应该是一个对象文字
 ...
 data: { 
        name : $('#ncname').val(),
        address : $('#ncaddress').val(),
        postcode : $('#ncpostcode').val(),
        dob : $('#ncdob').val(),
        mobile : $('#ncmobile').val(),
        email : $('#ncemail').val()
},
 ...

另外 - 我将以下列方式收集ajax调用之前的所有值:

var ncname = $('#ncname').val();

这将让您在firebug / chrome开发工具中以更方便的方式验证valuse 哦..几乎忘了 - 检查提琴手或其他工具,看看是否有人发送到服务器,看看是否拒绝了它

答案 1 :(得分:2)

我建议您使用error方法的ajax回调来帮助您了解正在发生的事情:

error: function(xhr, ajaxOptions, thrownError) {
    alert(xhr.status);
    alert(thrownError);
}

通过这种方式,您可以看到它是 404 (因此页面路径错误), 500 (某些服务器端错误)等。

答案 2 :(得分:1)

删除数据周围的括号(和)。

答案 3 :(得分:0)

添加错误处理程序并查看返回的错误:

$.ajax({
        type: "POST",
        url: "ajax-newcustomer.php",
        data: (...),
        dataType: "json",
        success: function(data){
            ...
        },
        error: function(err){  ... check err here ...}
    });

此外,数据周围没有括号