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

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

代替:

 data:{user_id:userId} 

尝试:

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

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

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