首页 > 解决方案 > 在 Electron 中注册自定义协议以接受发布请求?

问题描述

是否可以在 Electron 中注册自定义协议,例如md-file://upload,当我的组件在视图中发送时,POST request我将能够处理它、获取request.body对象、处理它并返回 HTTP 响应对象?

例如我注册我的自定义协议如下:

  protocol.registerStringProtocol("md-file", function (request, callback){
    console.log("md-file", request);
    callback({
       data: '1231231'
    });
  })

它有效,但我没有看到任何对象body或对象,并且我Form Datarequest文档中找不到我想获取这些对象并且我做错了什么或者这是错误。

标签: electron

解决方案


在此处从 Electron 的一位开发人员那里获得答案:https ://github.com/electron/electron/issues/17531#issuecomment-700952791

这是 的一个基本限制XMLHttpRequest:它只将上传正文发送到 Http/Https。(有关 ProtocolIsInHTTPFamily 的定义,请参见此处。)

如果您将协议注册为支持 Fetch,则 fetch() 不会出现此问题。我已经修改了您的示例以显示如何:https ://gist.github.com/e8f8f2322c5452d941a4fcc05f063942


推荐阅读