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数据传递,但这只是我拼命地尝试。有什么想法吗?如果我不清楚任何事情,请告诉我。感谢。
答案 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调用期间发送的确切请求/响应,并分析您从服务器获取的确切错误消息。它使调试问题变得更加容易。