如何使用Electron绕过具有复杂介质类型的HTTP帖子中的预检?

问题描述 投票:0回答:1

我需要使用特定媒体类型使用HTTP端点,并且该端点不处理OPTIONS方法。

我想这使用常规浏览器是不可能的,但我相信应该可以使用Electron,因为我可以使用Postman执行相同的POST请求。

我必须使用什么样的框架才能实现这一目标?

http cors electron postman http-method
1个回答
1
投票

我搞定了。如果您在Electron中使用Angular,jQuery或任何Javascript,它将使用浏览器的功能,因此如果POST具有复杂的媒体类型,也将发送OPTIONS预检,这是我的情况。

如果您使用Electron的http API,则不会这样做。文档在这里https://electronjs.org/docs/api/client-request

这是我使用它的POC角度代码:

  const { net } = require('electron').remote;
  const request = net.request(requestApi);

let requestApi = {
    method: 'POST',
    headers: {
      'Content-Type': 'custom complex media type here',
      'Authorization': 'Bearer ' + accessToken // if api is secured
    },
    protocol: 'https:',
    hostname: 'hostname.com',
    port: 443,
    path: '/api/path/to/method'
  };

  request.on('response', (response) => {
    console.log(`STATUS: ${response.statusCode}`);
    resolve(response);

    response.on('error', (error) => {
      console.log(`ERROR: ${JSON.stringify(error)}`);
      reject(error);
    })
  });

  request.end(JSON.stringify(usageData));

希望这可以帮助。

© www.soinside.com 2019 - 2024. All rights reserved.