Javascript Office Online:WOPI PutFile收到一个空请求
我正在实现一个WOPI服务器,试图与Office Online集成。当WOPI客户端调用PutFile方法(保存文件)时,它正在发送一个空请求(req.body.length==0)。以下是节点/快速代码:Javascript Office Online:WOPI PutFile收到一个空请求,javascript,node.js,ms-word,ms-office,ms-wopi,Javascript,Node.js,Ms Word,Ms Office,Ms Wopi,我正在实现一个WOPI服务器,试图与Office Online集成。当WOPI客户端调用PutFile方法(保存文件)时,它正在发送一个空请求(req.body.length==0)。以下是节点/快速代码: app.post('/wopi/files/:fileId/contents', function (req, res) { console.log(req.body.length); ... 非常感谢您的建议。如果您正在将WOPI主机与Office Online集成,我想您或
app.post('/wopi/files/:fileId/contents', function (req, res) {
console.log(req.body.length);
...
非常感谢您的建议。如果您正在将WOPI主机与Office Online集成,我想您或您的公司可能已经注册了Microsoft所谓的Office 365云存储合作伙伴计划 如果是这样的话,你可以在Yammer联系他们的积极支持团队。您可以在那里发布您的问题,这些问题将得到认真的回答。我找到了答案: 将以下中间件放在bodyParser中间件之前。它将在request.rawBody中收集原始正文数据,并且不会干扰bodyParser
app.use(function(req, res, next) {
var data = '';
req.setEncoding('utf8');
req.on('data', function(chunk) {
data += chunk;
});
req.on('end', function() {
req.rawBody = data;
next();
});
});
app.use(express.bodyParser());
有关更多信息,请参见此处:
编辑:
,一个节点包非常好,我正在我的解决方案中使用它
var rawBodyParser = require('raw-body-parser');
app.use(rawBodyParser());
获取原始数据:
var rawBody = req.rawBody.toString('utf8');
如果您使用fiddler或类似工具检查请求,它是否包含任何附加头(如X-WOPI-Size)等。?不幸的是,和都没有说明身体在某些特殊情况下是否可以是空的……嗨@app_sciences你让它工作了吗?我遇到了完全相同的问题。我遇到了完全相同的问题,你找到解决方案了吗?