首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >访问sendBeacon发送的数据

访问sendBeacon发送的数据
EN

Stack Overflow用户
提问于 2015-10-11 05:51:01
回答 3查看 2.3K关注 0票数 4

文档表明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!'),我可以用$_GET访问gdata --为什么是$_SERVER['REQUEST_METHOD']=POST

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-10-15 02:56:34

来自navigator.sendBeacon的数据在$HTTP_RAW_POST_DATA中找到。

票数 3
EN

Stack Overflow用户

发布于 2020-04-24 11:33:39

以下是我如何做到的:

前端:在我的.js文件中:

代码语言:javascript
复制
window.onbeforeunload = () => {
  navigator.sendBeacon('php/record-stats.php', JSON.stringify(stats));
}

后端:文件中的

代码语言:javascript
复制
$request = file_get_contents('php://input');
$data = json_decode($request);

有很多试验/错误,当时我找不到任何医生.

票数 7
EN

Stack Overflow用户

发布于 2020-11-19 06:12:31

为了在PHP中获取print_r($_POST,1);,必须为HTTP请求格式化数据:

代码语言:javascript
复制
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);提供所需的结果。

另外..。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33062002

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档