gpt4 book ai didi

javascript - Rails - 为什么 ajax 不发送参数到 GET 请求

转载 作者:行者123 更新时间:2023-11-28 18:33:19 26 4
gpt4 key购买 nike

我正在尝试使用ajax通过get请求发送数据,但参数似乎没有被发送。我有一个页面显示数据库中的随机项目。您可以通过导航栏中的链接访问此页面。进入此页面后,会出现一个链接,允许您跳过当前项目以查找另一个随机项目,确保下一个项目不是用户刚刚查看的项目。

routes.rb

获取“待处理”,至:“items#pending”

查看

<%= link_to 'Skip', '', class: "btn btn-default btn-xs",
id: "skip-btn",
:'data-item-id' => @pending_item.id %>

Controller

def pending
@previous_pending_item_id = params[:id] || 0
@pending_items = Item.pending.where("items.id != ?", @previous_pending_item_id)
@pending_item = @pending_items.offset(rand @pending_items.count).first
respond_to do |format|
format.js
format.html
end
end

我对 html 和 js 都有响应,因为我正在使用导航栏链接以及页面上的链接的操作。页面上的链接是跳过按钮,应该会弹出另一个随机项目。

sitewide.js.erb

  $('#skip-btn').on('click', function () {
$.ajax({
data: {id: $(this).data("item-id")},
url: "/pending"
});
});

当我查看服务器日志时,显示 Started GET "/pending"... 但没有提及正在发送的参数。我错过了什么?

我使用 ajax 的原因是我不希望参数显示在 url 中。

为了澄清,我需要访问此页面时的 url 始终为/pending,且在 url 中没有参数或附加 :id。此页面应始终显示数据库中的随机记录。我需要发送参数的唯一原因是确保没有记录连续重复,即使它们是随机的。

最佳答案

我认为您需要阻止默认链接操作:

  $('#skip-btn').on('click', function (event) {
event.preventDefault();
...
});

关于javascript - Rails - 为什么 ajax 不发送参数到 GET 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37574085/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com