所以我在 View 上有这段代码:
var variable_test = 'begin';
$.ajax({
url : "/controller/index",
type : "post",
data : variable_test
}).done(function(response) {
alert('1');
})
.fail(function (error) {
alert('2');
});
var eia = <%= @variable.to_json.html_safe %>;
alert(eia);
在 Controller 上我有这个:
def index
@someVariable = 'end'
@variable = params[:variable_test]
end
执行结果如下:
带有 1 的对话消息(所以它应该已经工作并发布了一些东西)
空的对话消息
这是服务器端的 POST 请求:
Started POST ...
Processing by Controller#index as */*
Parameters: {"begin"=>nil}
...
...
Current user: anonymous
...
Completed 200 OK...
那么有什么问题呢?它实际上是将变量 variable_test
发布到 Controller variable
吗?如果是,为什么它读作 null?如何解决这个问题?
最佳答案
它正在邮寄您的值(value)。问题是 data
将一个对象作为值,所以如果你想在服务器端读取值作为 params[: variable_test]
你需要进行 ajax 调用
var variable_test = 'begin';
$.ajax({
url : "/controller/index",
type : "post",
data : { variable_test: variable_test },
}).done(function(response) {
alert('1');
}).fail(function (error) {
alert('2');
});
另一方面,我不确定你想要完成什么,你拥有的索引操作将尝试呈现你在 app/views/controller/下的 index.html.erb 文件,是在 ajax 请求中调用相同的索引操作?
抱歉没有评论,信誉不够。
关于javascript - 从 javascript 发布到 ruby,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33193276/