JQuery, как поставить хэш-значение в параметре запроса GET - PullRequest
0 голосов
/ 05 июня 2018

Я отправляю запрос на получение таким способом, и цель состоит в том, чтобы загрузить файл 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',
  }
}

Ответы [ 2 ]

0 голосов
/ 05 июня 2018

Вам нужно преобразовать объект в URL, вот пример:

var filter = {
     'type': 'credit',
     'status': 'fail',
     'invoice_type': 'invoce',
};


var str = Object.keys(filter).map(function(key){ 
  return encodeURIComponent(key) + '=' + encodeURIComponent(obj[key]); 
}).join('&');

console.log(str); //"type=credit&status=fail&invoice_type=invoce"
var url = `/download_money_report?${str}`
=> "/download_money_report?type=credit&status=fail&invoice_type=invoce"

В Rails это будет:

params[:type] => credit
params[:status] => fail
params[:invoce_type] => invoce
0 голосов
/ 05 июня 2018

Вы должны использовать JSON.Stringify(filter) перед тем, как присоединить его к URL и проанализировать в Rails

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...