在视图中:
<div>
<%= radio_button_tag :profile_set, "Profile picture", true, onClick: "set_profile(#{picturething.id});" %>
</div>
<script type="text/javascript">
function set_profile(picid) {
alert("Hello.");
$.ajax({
type : 'POST',
url : '/update_profile_picture',
dataType : 'script',
data : { picid:picid, callsign:callsign, page_name:page_name }
});
alert("Goodbye.");
};
</script>
routes.rb中:
post 'update_profile_picture', to: 'picturethings#update_profile', as: :update_profile_picture
我可以从浏览器控制台看到ajax请求没有触发,没有任何反应。出现“Hello”警报,因此代码至少执行了那么远,但在ajax位期间会丢失。 “再见”警报永远不会出现。
答案 0 :(得分:1)
根据我在问题中的评论,您的ajax
看起来不错......只需确保您已定义page_name
和callsign
:
function set_profile(picid) {
alert("Hello.");
$.ajax({
type : 'POST',
url : '/update_profile_picture',
dataType : 'script',
data : { picid:picid, callsign:callsign, page_name:page_name }
});
alert("Goodbye.");
};