Jquery Ajax Call抛出未定义的错误

时间:2016-05-21 09:19:51

标签: php jquery ajax

我正在尝试使用Jquery Ajax调用向php发送两个变量。如果async设置为false,则调用有效,但如果async为true,则调用失败。当只使用表单输入一个变量时,代码也可以工作(基本上得到输入缺失的响应),但是,当给出两个输入时,代码返回一个未定义的错误。我能得到一些建议吗?好好玩了一段时间。

发布编辑 - 我纳入了建议的更改。修改后的代码不起作用

这是我现在拥有的Jquery代码 -

$( document ).ready(function() {
$("#callLogin").click(function(){
    var username = $("#username").val();
    var password = +$("#login_password").val();
    $.ajax({
        url: "login.php",
        type: "POST",
        async: true,
                data: 'username=' +username + '&login_password='+password,   

        success: function(response){
            if(response!=""){
                alert(response);
                $("#loginErrMsg").html(response);
                $("#myModal").css("display","block");   
            }},
        error : function (ts) {
                    alert(ts.responseStatus);
        }
    });
});
});

还有一个观察:我还尝试序列化表单数据,然后将其发送到PHP。它似乎工作的唯一方法是我改变async:false。任何帮助将不胜感激

3 个答案:

答案 0 :(得分:0)

当你想在ajax调用中传递多个数据时,你可以像我在下面的代码中所示那样传递。

$( document ).ready(function() {
$("#callLogin").click(function(){
var username = $("#username").val();
var password = +$("#login_password").val();
    $.ajax({
        url: "login.php",
        type: "POST",
        async: true,
        data: 'username=' +username + '&login_password='+password,   


        success: function(response){
            if(response!=""){
                alert(response);
                $("#loginErrMsg").html(response);
                $("#myModal").css("display","block");   
            }},
        error : function (ts) {
                    alert(ts.responseStatus);
        }
    });
});
});

尝试这可能会解决您的问题。

答案 1 :(得分:0)

如果你想为html指定一些东西,你必须把它放在括号之间。

$("#loginErrMsg").html(response);

答案 2 :(得分:0)

通过引用此处发布的类似问题解决了问题。基本上需要设置$("#callLogin")。click(function(e){e.preventDefault(); ....}。表单中的提交函数被调用两次,这就是创建问题。感谢所有的帮助。