我在SO上找不到任何类似的问题。
有人可以告诉我一个关于如何在POST中使用loadURL的示例吗?我目前正在做以下
const url = firebaseCloudFunctionURL+"/endpointAPI";
const webview = document.createElement('webview');
webview.setAttribute("src", "https://www.nytimes.com/"); // forces dom-ready event to be called
webview.addEventListener('dom-ready', () => {
const postDict = {
query: "test_string"
};
webview.loadURL(url, {postData: postDict});
});
但是,Web服务器显示请求正文为空 (使用Firebase云功能)
exports.endpointAPI = functions.https.onRequest((req, res) => {
const test = req.body.shop;
console.log("req.body "+ JSON.stringify(req.body));
});
在日志中产生“req.body {}”。
在electron documentation postData中使用UploadRawData []编写。但是没有示例代码。有没有人让它上班?
答案 0 :(得分:1)
根据文档建议,您应该提供postData以符合类型
Array<UploadRawData> | Array<UploadFile> | Array<UploadFileSystem> | Array<UploadBlob>
,所以预期不会发送,因为您只是添加了普通对象。对于最简单的伪示例,如下所示
webview.loadURL(url, {
postData: [{
type: 'rawData',
bytes: Buffer.from('test_string2')
}]
})
显示具有给定字符串的缓冲区对象的帖子。首先,你应该发送数组,其次你应该遵循接受的对象类型的正确类型。
答案 1 :(得分:0)
请务必设置extraHeaders
:
webview.loadURL(url, {
postData: [{
type: "rawData",
bytes: Buffer.from("foo=bar")
}],
extraHeaders: "Content-Type: application/x-www-form-urlencoded; charset=UTF-8"
});