这是我的代码,我想做一个标准 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调用中发送的数据。为什么会发生这种情况?
1条答案
按热度按时间3pmvbmvn1#
很抱歉,我找到了问题的答案,似乎我试图在ajax请求的参数中发送字符串数组,这就是为什么它从未到达控制器。
加入阵列的技巧: