Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用jQuery将参数发送到rails应用程序_Jquery_Ruby On Rails_Ajax - Fatal编程技术网

使用jQuery将参数发送到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:

我想使用jQuery将表单中的变量发送到rails应用程序,这可能吗?目前我有下面的代码,并设置rails应用程序以获取参数,然后将这些参数插入数据库

我做错了什么

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]?