Ruby on rails 输入数组在Rails参数中转换为哈希
我正在AJAX请求中发送一个数组:Ruby on rails 输入数组在Rails参数中转换为哈希,ruby-on-rails,parameter-passing,Ruby On Rails,Parameter Passing,我正在AJAX请求中发送一个数组: $.ajax( { type: "POST", url: "http://192.168.0.15/calc", data: { "phone": phone, "points": [ { "lat": 59.15234, "lon": 30.99 }, { "lat": 59.15244, "
$.ajax(
{
type: "POST",
url: "http://192.168.0.15/calc",
data: {
"phone": phone,
"points": [
{ "lat": 59.15234, "lon": 30.99 },
{ "lat": 59.15244, "lon": 30.99 },
{ "lat": 59.15254, "lon": 30.99 }
],
"start_at": 1407249093,
"certificate": "849840487484"
},
success: function(data) {
alert('success');
},
error: function(jqXHR, textStatus, errorThrown){
console.log(jqXHR.statusCode());
console.log(textStatus);
console.log(errorThrown);
}
}
);
然后检查各点:
params[:points].inspect
然后查看散列:
{
"0"=>{"lat"=>"59.15234", "lon"=>"30.99"},
"1"=>{"lat"=>"59.15244", "lon"=>"30.99"},
"2"=>{"lat"=>"59.15254", "lon"=>"30.99"}
}
如何获取数组而不是散列(最好是在最初不必将散列转换为数组的情况下)?如果您可以这样做:
"points": [
'{ "lat": 59.15234, "lon": 30.99 }',
'{ "lat": 59.15244, "lon": 30.99 }',
'{ "lat": 59.15254, "lon": 30.99 }'
]
现在,这将被视为字符串数组,在解析时,您可以将其转换为哈希以进行解析
告诉我这是否解决了你的问题
编辑
$.ajax({
..
..
dataType: 'json',
contentType: 'application/json',
data : JSON.stringify({"points": [
{ "lat": 59.15234, "lon": 30.99 },
{ "lat": 59.15244, "lon": 30.99 },
{ "lat": 59.15254, "lon": 30.99 }]
})
});
这里的解决方案
您只需添加内容类型并将其设置为
contentType:'application/json'
,这看起来像是一个解决方案,而不是真正的解决方案。不幸的是,这里指出的解决方案可能重复,这会导致jQ发送选项请求。我甚至不知道这个HTTP方法存在。答复是404.P.S。这是因为相同的域策略。将ths表单放入web应用程序后,一切正常。