Javascript 没有迹象表明jquery ajax调用已完成

Javascript 没有迹象表明jquery ajax调用已完成,javascript,jquery,Javascript,Jquery,我有以下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) {

我有以下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);
        }
    });
}
我遇到的问题是,我没有收到成功或错误的警报。通过firebug观察流量,我可以看到响应很简单

success

我相信问题可能与响应的内容类型有关,它显示为text/javascript。我在想,也许我需要做一些不同的事情来处理这种内容类型。

在成功处理程序中放置一个try-catch块。我想这条线不行


ar结果=str.split(“|”)

使用
dataType
作为json,并在控制器(php)中以json的形式发送响应。。您可以通过…
echo json_encode(数组('success'=>'success'))来实现这一点。

JQUERY

$.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

success
函数中获得它,您正在做一个POST-ajax-not-get。ajax的数据部分应采用以下形式:

data: { name: "John", location: "Boston" }
拆下线路

type = "POST",
因为您希望在请求时将参数附加到url

从jQuery1.8Success开始,不推荐使用error和complete,改用done、fail和allways。

帖子的语法如下所示:

data = {id:"something", Amount:"someval"};

所以不要让我们被绞死。。当您更改响应的内容类型时,它是否起作用?@ExplosionPills-他妈的对。然而,我敢打赌,这一系列的提问会导致homeboy在请求/响应生命周期方面的思维扩展-/头晕-我希望他们要么解决问题,要么回来,如果成功的话,我当然不会寻求帮助。你能至少在拆分声明之前发出警报,看看它是否到达那里吗?我认为这可能是最好的要走的路。