【发布时间】:2017-11-24 01:38:06
【问题描述】:
我正在尝试根据此处显示的示例通过 ajax 将 javascript 变量从我的视图传递到我的控制器:Passing JavaScript variable to ruby-on-rails controller
我的控制器“pages_controller.rb”包含以下方法:
def test_page
@message= params[:id]
puts @message
end
相应的视图“test_page.html.erb”包含带有 ajax 调用的 javascript,该调用由单击按钮触发:
<button id="submit_button">Submit Text</button>
<script>
$("#submit_button").on('click',function(event) {
var string = "helloWorld";
$.ajax({
url: "/test/test_page/?id="+string,
type: "POST",
dataType: "text",
success: function(){
alert('Saved Successfully');
},
error:function(){
alert('Error');
}
});
});
</script>
在 routes.rb 我定义了以下路由:
post 'test/test_page/:id', to: 'pages#test_page'
但是,当我按下按钮时,我得到了定义的错误警报,并且在检查浏览器控制台时,我看到了以下错误:
jquery.js:11007 POST https://my-website.com/test/test_page/?id=halloWelt 404 (Not Found)
但我可以看到“rake routes”显示定义了以下路由:
POST /test/test_page/:id(.:format) pages#test_page
我尝试在控制器中定义另一种方法并重新路由,但 404 错误仍然存在。我该如何解决这个 404 错误?
【问题讨论】:
-
您不能在 url 中通过 post 请求传递参数。使用获取请求。或将 ajax 中的 id 作为数据参数传递
标签: javascript ruby-on-rails ajax