点击按钮我
(function() {
$("#btnStep2").click(function() {
number = $('#btnStep2').attr('number');
var dataString='number='+number+'&reserved='+$('#rd'+number).is(':checked')+'&environment=qa1';
alert(dataString);
$.ajax({
type: "PUT",
url: "/tnrepos/"+number,
contentType: "application/text; charset=utf-8",
beforeSend: function(xhr) {xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content'))},
data: dataString,
success: function(data){
alert("update successfully");
}});
return false;
});
});
服务器上的是
Started PUT "/tnrepos/12345" for 127.0.0.1 at 2013-03-15 11:38:03 -0700
Processing by TnreposController#update as */*
Parameters: {"id"=>"12345"}
但我没有看到其他参数传递..
控制器中的我打印参数
"action"=>"update", "controller"=>"tnrepos", "id"=>"12345"}
为什么没有其他参数?我测试了firefox和chrome。
答案 0 :(得分:0)
$.ajax({
type: "PUT",
url: "/tnrepos/" + number,
contentType: "application/text; charset=utf-8",
beforeSend: function(xhr) {xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content'))},
data: {data : dataString} ,
success: function(data){
alert("update successfully");
}});
return false;
});
});
您可以看到数据的使用:“{data:dataString}”,上面。
现在,你的params [:data]将拥有dataString。
我建议将它们传递为“{number:number,reserved: $('#rd'+ number).is(':checked')}并在控制器上访问它们 他们的名字如params [:number],params [:reserved]等等。
试一试,让我知道!