Как добавить данные в ajax-запрос Rails - PullRequest
0 голосов
/ 07 ноября 2018

Можно ли использовать data с Rails.ajax в приложении Rails 5.1+ (без jQuery) при выполнении запроса GET? Или data работает только с POST с?

У меня есть следующее

Rails.ajax
      url: "/pages?title=lorem}"
      type: 'GET'

И я бы предпочел иметь

Rails.ajax
      url: 'pages'
      type: 'GET'
      data: { title: 'lorem' }

Но когда я пытаюсь, мои параметры выглядят как { "object Object"=>nil, "controller"=>"pages", "action"=>"index"}

Добавление dataType: 'json' и dataType: 'text', похоже, изменяет параметры, передаваемые контроллеру.

1 Ответ

0 голосов
/ 07 ноября 2018

Возможно использовать данные с запросом GET; однако Rails.ajax просто добавляет данные в URL.

if options.type is 'GET' and options.data
  if options.url.indexOf('?') < 0
    options.url += '?' + options.data
  else
    options.url += '&' + options.data

Кроме удобочитаемости, использование данных не дает никаких преимуществ. Ваша первая техника добавления данных в URL-адрес - это то же самое, что Rails.ajax под капотом.

Rails.ajax
  url: "/pages?title=lorem"
  type: 'GET'

Однако, это похоже на , как Rails.ajax обрабатывает данные для запросов POST . Он не выполняет никакого преобразования данных. Данные передаются через нетронутые в XMLHttpRequest. Данные отправляются следующим образом: options.data передается как есть.

xhr.send(options.data)
...