问题标签 [sendbeacon]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
873 浏览

onunload - navigator.sendBeacon 未从卸载中调用

根据MDN和规范,navigator.sendBeacon 旨在从窗口卸载中调用。现在,如果您关闭浏览器的最后一个选项卡或整个浏览器窗口,它似乎不再起作用。

谁能确认这是否是设计使然?如果是这样,是否有一种解决方法可以在卸载时发送最后一分钟的数据?

我在 Firefox 74 和 Chrome 81 中使用这个示例文件进行了测试,寻找 Fiddler 的调用。

0 投票
0 回答
159 浏览

javascript - sendBeacon 在 beforeunload 处理程序中不起作用

我在 React 组件中有以下 useEffect 钩子:

URL 只是我确认正在使用 Postman 工作的一些测试服务器。但是,当我关闭浏览器时,没有收到请求。

我有两个问题:

  1. 为什么这不起作用?

  2. 有没有办法用 sendBeacon 发送一个 javascript 对象数组?

非常感谢

0 投票
1 回答
66 浏览

javascript - JSON stringify将完整的数组元素转换为PHP中数组的键

我正在尝试将sendBeacon方法附加到我的 Web 应用程序中的一个页面。我尝试request使用简单的AJAX方法和通过sendBeacon()方法发送。两者都给出不同的结果,没有一个是可用的。请建议。

html.php

ttstt.php

当我单击按钮时,html.php我得到以下结果。
!!请注意,完整的数组在关键部分。!!

当我重新加载页面以启动 时sendBeacon(),我得到[]了结果。

0 投票
0 回答
21 浏览

javascript - React - 需要在关闭浏览器/选项卡时调用 Api

我需要在关闭浏览器/选项卡和更改 url 时进行 api 调用,我尝试了beforeunload, unload,popstate事件,也尝试了Navigator.sendBeaconapi。似乎没有任何工作。任何输入都会有所帮助。

componentWillUnmount还添加了不会被触发的api 调用。

0 投票
2 回答
1263 浏览

javascript - 关闭 Chrome 窗口未在卸载事件处理程序中使用 sendBeacon 发送数据

我试图在窗口关闭时发送数据,以防止 2 人编辑和覆盖彼此的数据。目前我在卸载事件处理程序中使用 sendBeacon。

火狐:

  • 刷新:有效
  • 后退按钮:工作
  • 关闭窗口:作品

铬合金:

  • 刷新:有效
  • 后退按钮:工作
  • 关闭窗口:不起作用

这是我的代码

0 投票
1 回答
60 浏览

javascript - 用户退出选项卡或浏览器时如何运行 POST 请求?

到目前为止我有这个

这是有效的,但不可靠。有时请求已发送,有时未发送,我不明白为什么。

我知道这与请求的同步性有关。我尝试改用 .ajax() 并将 async 属性设置为 false,但后来我意识到 async:false 已被弃用。

我需要做的就是在用户关闭浏览器或选项卡时发送最终插入查询...请帮助。

0 投票
1 回答
297 浏览

javascript - sendBeacon JSON 数据未被读取(服务器端)Nodejs 和 JS

我正在尝试发送关于可见性更改的 POST 请求(如文档中所述)并且成功率有限。我成功发出了 sendBeacon 请求,但似乎无法读取我的 Node.js Express 服务器上的对象。这是我的发送信标 js 代码:

然后,当我通过快递处理它时:

我得到这个日志:Recieved [object Object]。我无法阅读req.body.roomID,即使在解析主体之后(返回错误无法解析 [object Object])。我还尝试以一种形式对其进行编码:

在服务器上返回此日志:Recieved {}.

为什么我收不到这个请求?谢谢!

0 投票
0 回答
72 浏览

sendbeacon - 如何在服务器端获取读取数据发送信标?

如何在我的 wordpress 网站上获取并粉碎我在 php 中使用 sendbeacon 发送的 json 数据。我没有任何api。

我的代码;发送方;

})

和客户端ajaxservice

每次打印 no_exist :) 如何解决。谢谢。

0 投票
0 回答
42 浏览

javascript - 如何使用图像对象在 Nodejs 后端发送和接收数据(将数据作为图像 src 发送)?

我正在尝试在卸载事件时将分析数据发送到后端。我的第一个选择是“sendBeacon”功能,但在本文 ( https://volument.com/blog/sendbeacon-is-broken ) 中,它说 sendBeacon 不是一个好的选择,因为它不会总是有效。它说发送数据的更好方法是使用 Image 对象进行数据传输,即将数据作为图像 src 发送,因为它更可靠。如何使用图像对象在 Nodejs 后端发送和接收数据?

0 投票
0 回答
32 浏览

ajax - iOS Safari 通过点击链接切换页面时跟踪用户

我正在尝试跟踪用户在我网站上的特定页面上停留的时间。我使用 sendBeacon、AJAX 作为 Fallback 和 Page Visibility API。它适用于所有浏览器,甚至在关闭或切换选项卡时也适用于 Safari。

现在的问题是,当我在我的网站上使用导航链接时,跟踪在 Safari 中不起作用,但在所有其他浏览器中都不起作用。这是代码:

有人知道如何解决这个问题吗?