是否可以在Electron中注册自定义协议,例如md-file://upload
,当视图中的组件将发送POST
request
时,我将能够处理它,获取request.body
对象,处理它,并返回HTTP响应对象?
例如,我注册我的自定义协议如下:
protocol.registerStringProtocol("md-file", function (request, callback){
console.log("md-file", request);
callback({
data: '1231231'
});
})
它可以工作,但我在request
对象中没有看到任何body
或Form Data
,而且我在文档中找不到我应该得到这些对象,我做错了什么,或者是错误。
从Electron的一位开发人员那里获得答案:https://github.com/electron/electron/issues/17531#issuecomment-700952791
这是XMLHttpRequest
的一个基本限制:它只向Http/Https发送上传主体。(有关ProtocolIsInHTTPFamily的定义,请参阅此处。(
如果您将协议注册为支持fetch,那么fetch((就不会有这个问题。我修改了您的示例,以展示如何:https://gist.github.com/e8f8f2322c5452d941a4fcc05f063942