AJAX JQuery JSON发布数据未到达控制器

时间:2012-09-15 15:42:07

标签: jquery ajax json post

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

1 个答案:

答案 0 :(得分:1)

而不是:

data:{user_id:userId}

尝试:

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

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

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