Ruby on rails 4 将JSON从jQuery发布到Rails 4应用程序并另存为会话变量
我试图弄清楚如何通过post将JSON从jQuery发送到Rails应用程序,并将JSON数据保存为会话变量。以下是我到目前为止的情况: jQuery代码Ruby on rails 4 将JSON从jQuery发布到Rails 4应用程序并另存为会话变量,ruby-on-rails-4,Ruby On Rails 4,我试图弄清楚如何通过post将JSON从jQuery发送到Rails应用程序,并将JSON数据保存为会话变量。以下是我到目前为止的情况: jQuery代码 info = '{"data": {"color": "green"}}' $.ajax({ type: "POST", url: '/cart/save-design', data: info, cache: false, success: function(data){ alert("OK"); },
info = '{"data": {"color": "green"}}'
$.ajax({
type: "POST",
url: '/cart/save-design',
data: info,
cache: false,
success: function(data){
alert("OK");
},
error: function(){
}
});
def save_design
data = json_params
session[:check] = data
head :no_content
end
private
def json_params
params.require(:data).permit(:color)
end
轨道控制器代码
info = '{"data": {"color": "green"}}'
$.ajax({
type: "POST",
url: '/cart/save-design',
data: info,
cache: false,
success: function(data){
alert("OK");
},
error: function(){
}
});
def save_design
data = json_params
session[:check] = data
head :no_content
end
private
def json_params
params.require(:data).permit(:color)
end
服务器错误日志
Started POST "/cart/save-design" for 127.0.0.1 at 2015-09-03 12:52:37 -0700
Processing by CartsController#save_design as */*
Parameters: {"{\"data\": {\"color\": \"green\"}}"=>nil, "locale"=>"en"}
MOPED: 127.0.0.1:27017 QUERY database=abc_development collection=sessions selector={"$query"=>{"_id"=>"Lroqq29V1QVt7ebIM5ENwFeN0FM"}, "$orderby"=>{:_id=>1}} flags=[] limit=-1 skip=0 batch_size=nil fields=nil runtime: 0.6210ms
Completed 400 Bad Request in 7ms
ActionController::ParameterMissing (param is missing or the value is empty: data):
app/controllers/carts_controller.rb:47:in `json_params'
app/controllers/carts_controller.rb:30:in `save_design'
问题似乎出在我的强悍的情妇身上,但我不明白为什么 将
数据类型:“json”
添加到AJAX调用中:
$.ajax({
type: "POST",
url: '/cart/save-design',
data: info,
dataType: 'json',
cache: false,
success: function(data){
alert("OK");
},
error: function(){
}
});
并确保
info
是有效的JavaScript对象,而不是普通字符串。有效。不需要数据类型:“json”,但需要有效的对象。我看到过一个在发布之前将json对象字符串化的示例,这就是我的问题。非常感谢。