【发布时间】:2018-06-05 06:46:38
【问题描述】:
我是这样发送get请求的,目的是下载一个excel文件。
var filter = {
'type': 'credit',
'status': 'fail',
'invoice_type': 'invoce',
}
var url = `/download_money_report?filter=${filter}`
window.location.assign(url);
但是在后端(Rails),我得到这样的参数
{ "filter" => "[object Object]" }
我该怎么做才能让它变成
{
"filter" => {
"type" => 'credit',
"status" => 'fail',
"invoice_type" => 'invoce',
}
}
【问题讨论】:
-
您需要在 JS 中将对象编码为 JSON,将其发送到单个参数中,然后在 Ruby 逻辑中反序列化 JSON - 或者在查询字符串中单独发送每个参数,然后从这些参数中创建对象Ruby 代码中的 URL 参数。
-
您可以在将过滤器添加到 URL 之前对其进行字符串化。如所写,您只需触发具有显示结果的对象的 toString() 函数: var url =
/download_money_report?filter=${JSON.stringify(filter)}
标签: javascript jquery ruby-on-rails get