首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何接收"navigator.sendbeacon“在node.js服务器上发布的数据?

如何接收"navigator.sendbeacon“在node.js服务器上发布的数据?
EN

Stack Overflow用户
提问于 2015-07-11 08:29:46
回答 2查看 14.2K关注 0票数 29

我正在使用新的浏览器特性(navigator.sendBeacon)将异步数据发布到node.js服务器。

但是我无法在节点服务器上接收到它。那么有谁能告诉我如何接收sendBeacon在节点服务器上发布的数据呢?

节点服务器代码是:

代码语言:javascript
复制
var express = require('express');
var app = express();
var bodyParser = require('body-parser');

// set cross origin header to allow cross-origin request.
app.use(function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
  next();
});

app.use(bodyParser.json());

app.post('/',function(req,res){
    console.log('i got the request',req.body)
});

var server = app.listen(3000, function() {
    console.log('Express is listening to http://localhost:3000');
});

客户端代码

代码语言:javascript
复制
navigator.sendBeacon('http://localhost:3000/','{"a":9}')
EN

回答 2

Stack Overflow用户

发布于 2015-07-11 09:53:57

navigator.sendBeacon POST使用Content-Type:text/plain;charset=UTF-8传输字符串数据。因此,只需添加bodyParser.text()来解析“text/平原”数据:

服务器:

代码语言:javascript
复制
...
app.use(bodyParser.json());
app.use(bodyParser.text());
...

客户端:

代码语言:javascript
复制
navigator.sendBeacon('http://localhost:3000/', JSON.stringify({a:9}));

更新

显然,您可以使用Blob在请求中添加Content-Type:application/json头:

客户端:

代码语言:javascript
复制
var blob= new Blob([JSON.stringify({a:9})], {type : 'application/json; charset=UTF-8'}); // the blob
navigator.sendBeacon('http://localhost:3000/', blob )
票数 44
EN

Stack Overflow用户

发布于 2022-05-05 02:49:34

我们可以通过formData发送数据。

在客户端发送数据:

代码语言:javascript
复制
const formData = new FormData()
formData.append('resource', JSON.stringify({a:'test'}))
const success = navigator.sendBeacon('/api/url', formData)

在服务器上以快捷方式接收数据:

Express js form data

对于koa2,我只使用koa2-formidable中间件,只使用/api/url路由器。

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

https://stackoverflow.com/questions/31355128

复制
相关文章

相似问题

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