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 ファイルとすべてを起動します。データベースの変更は正しく機能します。

唯一の問題は、成功したとしても、「success:」の部分が起動しないことです。

ヒントをありがとう。

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);
    }
}

また、何が起こっているのかを確認するためにfirebugを使用します

于 2012-07-25T21:59:17.020 に答える
0

ajax 呼び出しの前に問題の要素へのポインターを作成します。それ以外の場合、成功の「$(this)」は xhr 応答を参照します。応答が正しいコンテンツ タイプ (application/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

私の場合、問題はタイプミスでした。と書いていましたsuccesssucess

于 2015-02-08T19:35:55.227 に答える
0

その ajax 関数呼び出しが内部で何を参照しているかはまだわかりません$(this)。つまり、それが何を参照しているかは理解していますが、親があるとは思えません

htmlJSONデータを期待しているときに、成功ハンドラーで返されたデータに変数を使用するのはなぜですか。

これは、不正な形式の 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 に答える