我有一个Rails服务器,我正在尝试使用$ .ajax函数创建一个PUT。服务器提供POST 200 OK,但DB数据没有更新。
$.ajax({type: 'POST',
url: this.SERVER_IP+ "/user_coordinates/" + this.FRIEND_ID,
dataType: 'json',
async: false,
data: {_method:'PUT',
page: {"user_coordinate":
{"meetinglat":this.meetingPoint.getPosition().lat(),
"meetinglong":this.meetingPoint.getPosition().lng()}
}
},
success: function(msg){
console.log("Sucess! Object: ");
console.log(msg);
},
error: function(msg){
console.log("Error! Object: ");
console.log(msg);
}
});
正在调用错误函数。这可能是什么问题?
感谢您的时间;)
答案 0 :(得分:3)
我发现了问题。在我的控制器中使用logger.debug我注意到它正在期待参数[:user_coordinate]并且在我的ajax调用中我传递的内容如下:
data: {_method:'PUT',
page: {"user_coordinate":
{"meetinglat":this.meetingPoint.getPosition().lat(),
"meetinglong":this.meetingPoint.getPosition().lng()}
}
}
而不是:
data: {_method:'PUT',
user_coordinate: {"meetinglat":this.meetingPoint.getPosition().lat(),
"meetinglong":this.meetingPoint.getPosition().lng()}
},
现在它正在运作! ;)
logger.debug“params#{params [:user_coordinate]}”
答案 1 :(得分:0)
在作为接收端的Rails控制器中,在你的情况下user_coordinates_controller,尝试打印出参数是什么, - >把params.inspect
另一个注意事项,看起来你的AJAX调用上有类型POST