0

私は次のajax呼び出しを持っています

function update_ledger_amount(id) {
    $.ajax({
        type: "POST",
        url: "/ledgeritems/UpdateAmount",
        data: "Id=" + id + "&Amount=" + $('#ledger_edit_amount_input_' + id).val(),
        success: function (str) {
            var result = str.split('|');
            alert(str);
            if (result[0] == 'success') {
                set_display_message('Item updated', 'success');
                load_ledger_month($('#BankAccountId').val(), $('#StartDate').val());
            }
            else {
                alert('bad');
                set_display_message(result[1], 'error');
            }
        },
        error: function (request, status, error) {
            alert(error);
        }
    });
}

私が抱えている問題は、成功またはエラーに関するアラートが表示されないことです。ファイアバグを介してトラフィックを見ると、応答が簡単であることがわかります

success

問題は応答のコンテンツタイプに関係している可能性があると思います。これはtext/javascriptとして表示されます。そのコンテンツタイプを処理するには、別のことをする必要があるのではないかと考えています。

4

4 に答える 4

0

成功ハンドラに try catch ブロックを入れてください。この行で失敗していると思います

ar 結果 = str.split('|');

于 2013-01-17T06:59:48.030 に答える
0

json として使用dataTypeし、コントローラー (php) で json として応答を送信します。echo json_encode(array('success'=>'success'))

Jクエリ

$.ajax({
    type: "POST",
    url: "/ledgeritems/UpdateAmount",
    data: "Id=" + id + "&Amount=" + $('#ledger_edit_amount_input_' + id).val(),
    dataType:'json',
    success: function (str) {
        alert(str.success);  //in mycase.. you can do your stuff here
        /*var result = str.split('|');
        alert(str);
        if (result[0] == 'success') {
            set_display_message('Item updated', 'success');
            load_ledger_month($('#BankAccountId').val(), $('#StartDate').val());
        }
        else {
            alert('bad');
            set_display_message(result[1], 'error');
        }*/
    },
    error: function (request, status, error) {
        alert(error);
    }
});

PHP

.....
echo json_encode(array('success'=>'success'));

successこれはjsonとして成功を送信し、次の関数でそれを取得できますajax

于 2013-01-17T07:01:47.537 に答える
0

GET ではなく POST ajax を実行しています。ajax のデータ部分は、次の形式にする必要があります。

data: { name: "John", location: "Boston" }
于 2013-01-17T07:06:33.557 に答える
0

線を取り除く

type = "POST",

リクエストでURLにparamsを追加したいからです。

jQuery 1.8 では、success、error、および complete は非推奨です。代わりに、done、fail、および allways を使用してください。 http://api.jquery.com/jQuery.ajax/#jqXHR

POST の構文は次のようになります。

data = {id:"something", Amount:"someval"};
于 2013-01-17T07:08:28.247 に答える