使用jQuery将参数发送到rails应用程序
我想使用jQuery将表单中的变量发送到rails应用程序,这可能吗?目前我有下面的代码,并设置rails应用程序以获取参数,然后将这些参数插入数据库 我做错了什么使用jQuery将参数发送到rails应用程序,jquery,ruby-on-rails,ajax,Jquery,Ruby On Rails,Ajax,我想使用jQuery将表单中的变量发送到rails应用程序,这可能吗?目前我有下面的代码,并设置rails应用程序以获取参数,然后将这些参数插入数据库 我做错了什么 var dataString = 'author='+ name + '&book=' + book + '&genre=' + genre; $.ajax({ type: "POST", url: "http://localhost:3000/books", data: dataString, success:
var dataString = 'author='+ name + '&book=' + book + '&genre=' + genre;
$.ajax({
type: "POST",
url: "http://localhost:3000/books",
data: dataString,
success: function() {
$('#form').html("<div id='message'></div>");
$('#message').html("<h2>Book Submitted!</h2>")
.append("<p>You will be notified soon!</p>")
.hide()
.fadeIn(1500, function() {
$('#message').append("<img id='checkmark' src='images/check.png' />");
});
谢谢尝试在查询中使用令牌。这是对XSS攻击的保护
'authenticity_token': AUTH_TOKEN
例如:
var dataString = 'author='+ name + '&book=' + book + '&genre=' + genre + '&authenticity_token='+AUTH_TOKEN;
我认为您不需要jQuery在Rails应用程序中从表单传递参数 通常,命令railsgeneratescaffold生成用于编辑和创建新资源的视图。这些视图包含不使用jQuery将参数传递到数据库的表单 这是一个很好的教程
如果您正在从另一个应用程序Rails、HTML、PHP或其他应用程序传递参数,那么问题可能是Rails希望您传递真实性令牌。由于您正在从另一个应用程序传递数据,因此无法使用该应用程序,因此需要执行以下操作之一 对于特定的操作,不要防止伪造: protect_from_forgery :except => [:create, :update] 或对于整个控制器: skip_before_filter :verify_authenticity_token
URL参数中的绝对路径引起了我的怀疑 Ajax调用只能对服务页面的同一服务器进行 您的html页面是否也托管在上?如果不是,那就是你的问题
如果是,请查看关于真实性代币的答案。您能描述一下哪里出了问题吗?您是否收到错误消息?执行此操作时是否有日志副本?它只是从一个标准的.HTML弹出窗口传递一个非rails应用程序的参数,为什么不在视图中使用params[:Param_name]?