jQuery AJAX成功

时间:2012-04-22 03:16:55

标签: jquery ajax

我正在使用jQuery的$.ajax函数来提交一个有效的表单,但成功就是我遇到问题的地方。这是我的代码:

$("#form").submit(function () {
        $.ajax({
            type: "POST",
            url: '/login/spam',
            data: formData,
            success: function (dataCheck) {
                if (dataCheck == 'value') {
                     //Do stuff
                }
            }
        });
        return false;
    });

我遇到的问题是if函数一直说dataCheck不等于 value 。我知道确实如此,因为当我删除return false;时,页面会显示 value ,正如预期的那样。此外,我之前使用过几乎完全相同的代码,这有效。有人可以给我一些建议吗?

6 个答案:

答案 0 :(得分:19)

如何自己找到答案:

放置调试代码以查看从服务器获得的内容。

$("#form").submit(function () {
        $.ajax({
            type: "POST",
            url: '/login/spam',
            data: formData,
            success: function (dataCheck) {
                console.log(dataCheck); // <==============================
                if (dataCheck == 'value') {
                     //Do stuff
                }
            }
        });
        return false;
    });

它可能是你想到的其他格式。

答案 1 :(得分:2)

如果您想阻止默认行为(在这种情况下是普通表单提交),请使用preventDefault而不是return false;即使脚本中存在问题,在上面返回false语句,preventDefault也会有效。

以下代码应该可以正常工作。

$("#form").submit(function(e) {
   e.preventDefault();
    $.ajax({
        type: "POST",
        url: '/login/spam',
        data: formData,
        success: function (dataCheck) {
            if (dataCheck == 'value') {
                 //Do stuff
            }
        }
    });    
});

正如gdoron所提到的,使用console.debug / alert来查看变量中的值。使用firebug Net tab / fiddler将帮助您了解从服务器页面获得的响应。

答案 2 :(得分:0)

很奇怪。我的建议是你可以在firefox或其他东西中使用firebug(例如在chrome中开发工具)来查看xhr响应。

我认为错误的类型xhr响应可能导致错误的结果(例如'749afa42e6621f10bae17ee00cb1f4de'信封带有html标签)或某些空间未被激活。

可以帮助你:)

答案 3 :(得分:0)

我知道它可能会迟到但是我今天遇到了同样的问题,问题是正确的字符串已经恢复成功,但是由于某种原因它在它前面有一个额外的换行符。本地这种情况并没有发生,但是当我把它上线时,新行总是被添加到返回的字符串中(在你的情况下是dataCheck)。我使用了substr()函数来删除最后的换行符,并且从那里开始工作正常。

答案 4 :(得分:0)

if(response.indexOf(“success”)!= - 1){}试试这个方法indexOf()

答案 5 :(得分:0)

我猜dataCheck字符串。然后使用localeCompare()

if (dataCheck.localeCompare('value') == 0) {
    //Do stuff
}
  • 如果str1在str2
  • 之前排序,则返回 -1
  • 如果两个字符串相等,则返回 0
  • 如果在str1
  • 之后排序str2,则返回 1