ruby-on-rails Rails 6: AJAX 数据未到达控制器

hgb9j2n6  于 2022-11-26  发布在  Ruby
关注(0)|答案(1)|浏览(124)

这是我的代码,我想做一个标准 AJAX 调用:

// app/javascripts/packs/contacts.js
jQuery(() => {
  $(".upload-contacts-button").on("click", (e) => {
    e.preventDefault();
    //...

    $.ajax({
      url: "/pre-parse-contacts",
      type: "post",
      data: { my_param: random_param },
      success() {},
    });
  });
});

这是我的路线:

post 'pre-parse-contacts', to: 'contacts#pre_parse_contacts', as: 'pre_parse_contacts'

由于某种原因,我在 AJAX 请求中发送的数据从未到达控制器,当我尝试在控制器中执行puts params操作时,我得到以下结果:

------- DEBUG --------
{"controller"=>"contacts", "action"=>"pre_parse_contacts"}

我确信 AJAX 调用已经完成了,甚至js.erb视图也在尝试渲染,但是我得到了错误,因为我需要在ajax调用中发送的数据。为什么会发生这种情况?

3pmvbmvn

3pmvbmvn1#

很抱歉,我找到了问题的答案,似乎我试图在ajax请求的参数中发送字符串数组,这就是为什么它从未到达控制器。
加入阵列的技巧:

$.ajax({
          url: "/pre-parse-contacts",
          type: "post",
          data: { my_param: random_param.join() },
          success() {},
        });

相关问题