访问由sendBeacon发送的数据
Accessing data sent by sendBeacon
文档表明sendBeacon
通过HTTP POST request
发送数据,但是在PHP中,$_POST
变量似乎是一个空数组。
这是我的javascript代码:navigator.sendBeacon('beacon_log.php','My lost data')
我做错了什么?
更新:
发现,如果我使用navigator.sendBeacon('beacon_log.php?g_data=My data ok','Still lost!')
我可以访问gdata与$_GET
为什么会是当$_SERVER['REQUEST_METHOD']=POST
?
我是这样做的:
前端:在我的。js文件:
window.onbeforeunload = () => {
navigator.sendBeacon('php/record-stats.php', JSON.stringify(stats));
}
后端:
$request = file_get_contents('php://input');
$data = json_decode($request);
我试了很多次才找到它,当时我找不到任何文档…
为了在PHP中获得print_r($_POST,1);
,数据必须格式化用于HTTP POST请求:
window.onpagehide = function(event)
{
var fd = new FormData();
fd.append('ajax', 'beacon');
fd.append('name', 'John');
navigator.sendBeacon(path+'/beacon/', fd);
}
这将在PHP中生成print_r($_POST,1);
所需的结果。
另外……
- 不要在onbeforeunload时使用Beacon。
- 不要使用带有WebKit/Safari的onvisibilitychange的Beacon。
navigator.sendBeacon
的数据在$HTTP_RAW_POST_DATA
相关文章:
- 用程序搜索JQuery数据表中的文本
- 要求输入在数据列表中
- 正在将数据主题添加到所有项目
- 函数参数中的数据与指定变量之间的任何性能差异
- 在VanillaJS中模拟模型双向数据绑定
- CSS-如何定位内容数据标题
- 使用电话间隙在Android应用程序中显示SQL Lite的数据
- 无法在数据endVal中设置值=“”;{{ucount}}”;使用Angular JS的CountUp
- 序列化数据属性中对象的最可靠方法
- 如何将JSON数据导入我的ejs模板
- 不显示带有本地json文件数据的谷歌地图脚本
- 如何将json数据显示为html
- 画布数据到图像
- 使用jquery将mysql数据获取到新的表行中
- 使用html中的外部javascript进行数据验证
- 有时数据是't显示在浏览器中
- React中的数据集表示
- Navigator.sendBeacon() 数据大小限制
- 访问由sendBeacon发送的数据
- 如何接收navigator.sendbeacon"发送的数据在node.js服务器上