我正在开发office.js应用程序。我还开发了一个运行并等待http请求的快速服务器。 但是我在如何连接这两部分上有麻烦。(两个代码都是用Node thecnology编写的) 我尝试使用http模块,以便以其他代码将office.js应用程序中的发帖请求发送到快递服务器,但是没有成功。 这是office.js应用程序中的代码:
const data = JSON.stringify({
userid : 8888,
username : 'excell sending info - third test'
})
const options = {
hostname: 'localhost',
port: 8888,
path: '/test',
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Content-Length': data.length
}
}
const req = http.request(options, (res) => {
console.log(`statusCode: ${res.statusCode}`)
res.on('data', (d) => {
process.stdout.write(d)
})
})
req.on('badRequest', (error) => {
console.error(error)
})
//OfficeHelpers.UI.notify();
req.write(data)
req.end()
});
} catch (error) {
OfficeHelpers.UI.notify(error);
OfficeHelpers.Utilities.log(error);
}
}
Wireshark指示存在一个错误的请求。 非常感谢您的帮助!
答案 0 :(得分:1)
您正在使用Office.js构建Office加载项非常好。您在本地运行的Express服务器是否在https上运行?如您所知,作为一项安全措施,只能使用https加载加载项并连接到也使用https的站点/服务。您可以从我们拥有的最新模板中看到,我们还创建了一个简单的webpack-dev-server,该服务器使用https和自动生成的dev-cert。查看模板以获取有关如何生成证书以及如何配置证书的示例服务器。 https://github.com/OfficeDev/Office-Addin-TaskPane
作为Express.js的快速随机指针,我发现此博客对您有所帮助:https://timonweb.com/posts/running-expressjs-server-over-https/ 我希望这可以帮助你!
答案 1 :(得分:0)
使用HTTPS并创建所需的证书已解决了该问题。 然后可以将请求正确发送到服务器。