2

我有这样的 AJAX 语句:

$.ajax({
            type: "POST",
            dataType: 'json',
            url: "DBDeleteList.php",
            data: {listID: listID},
            success: function(html){
                /* Succesfully Updated DB */
                alert( 'Saved!' );
                $(this).parents('li').remove();
                $('#sortableLoader').load('index.php #sortableMenu');
            }
});

它工作正常并触发 PHP 文件和所有内容,数据库修改工作正常。

唯一的问题是“成功:”部分永远不会触发,即使它是成功的。

感谢您的任何提示。

4

4 回答 4

5

你有一个你没有看到的返回错误。您正在正确地发布到 php,但是无论您在发布后返回什么,您的 ajax 调用都不喜欢。在你的成功函数之后包括这样的东西来调试:

error: function (jqXHR, exception) {
    if (jqXHR.status === 0) {
        alert('Not connect.\n Verify Network.');
    } else if (jqXHR.status == 404) {
        alert('Requested page not found. [404]');
    } else if (jqXHR.status == 500) {
        alert('Internal Server Error [500].');
    } else if (exception === 'parsererror') {
        alert('Requested JSON parse failed.');
    } else if (exception === 'timeout') {
        alert('Time out error.');
    } else if (exception === 'abort') {
        alert('Ajax request aborted.');
    } else {
        alert('Uncaught Error.\n' + jqXHR.responseText);
    }
}

我也会使用萤火虫来帮助查看正在发生的事情

于 2012-07-25T21:59:17.020 回答
0

仍然不明白$(this)那个ajax函数调用里面指的是什么,也就是说我明白它指的是什么,但我怀疑它有没有父母?

html当您期望 json 数据时,为什么要在成功处理程序中为返回的数据使用变量。

您确定这不是格式错误的 json 导致解析错误的问题吗?

尝试省略数据类型并查看它返回的内容,并添加一个错误处理程序:

$.ajax({
    type: "POST",
    url: "DBDeleteList.php",
    data: { listID: listID },
}).done(function(html) {
     console.log(html);
}).fail(function(a,b,c) {
     console.log('error'+'-=-'+a+'-=-'+b+'-=-'+c);
});
于 2012-07-25T22:02:44.973 回答
0

在ajax调用之前创建一个指向有问题的元素的指针,否则你成功中的“$(this)”是指xhr响应。确保响应是正确的内容类型(应用程序/json)。

var $el = $(this);
$.ajax({
        type: "POST",
        dataType: 'json',
        url: "DBDeleteList.php",
        data: {listID: listID},
        dataType:"json",
        contentType : 'application/json',
        processData:false,
        success: function(html){
            /* Succesfully Updated DB */
            alert( 'Saved!' );
            $el.parents('li').remove();
            $('#sortableLoader').load('index.php #sortableMenu');
        }
});

还要验证响应的 json 是否有效。如果其中任何一个不满足,在大多数情况下,它都会默默地失败。

于 2012-07-25T22:22:26.630 回答
0

就我而言,问题是一个错字。我写了success但是sucess

于 2015-02-08T19:35:55.227 回答