2
var url =  base_url+"ajax/user/list_user_info/"+userId;
$.ajax({
        type: "POST",
        url: url,
        data:{user_id:userId},
        contentType: 'application/json',
        dataType: 'JSON',
        success: function(data) {

            if(data.redirect){
                window.location = data.redirect;    
            }
            else {
                $('#profile-main-content').html(data.html);
            }    
        }      
    });

现在,这是我的请求,一个非常标准的 AJAX 请求。我的问题是这个请求由于某种原因没有到达控制器。为了检查,我在数据库中执行了一个简单的测试插入,以检查控制器功能第一行的结果。但是没有插入测试。url 是正确的,因为我检查了 base_url 的声明。我知道我将“userId”作为参数并将其作为 POST 数据传递,但这只是我拼命尝试。请问有什么想法吗?如果我不清楚任何事情,请告诉我。谢谢。

4

1 回答 1

1

代替:

data:{user_id:userId}

尝试:

data: JSON.stringify({user_id:userId})

原因是您指定了请求内容类型,application/json因此您需要发送 JSON。在您的代码中,您没有发送 JSON 请求 - 您正在发送一个简单的application/x-www-form-urlencodedPOST 请求。而且由于您已经在 POST 正文中传递了 userId,因此您可能不需要在 url 中重复它。使用一种或另一种方法将此信息发送到您的服务器。

此外,为了更轻松地调试 javascript 错误,我强烈建议您使用FireBug。在许多方面,它允许您查看在 AJAX 调用期间发送的确切请求/响应,并分析您从服务器获得的确切错误消息。它使调试问题变得更加容易。

于 2012-09-15T15:43:44.103 回答