我需要使用一种特定的媒体类型来使用HTTP终结点,并且该终结点无法处理OPTIONS方法。
我想使用常规浏览器是不可能的,但是我相信使用Electron应该可以实现,因为我可以使用Postman进行相同的POST请求。
我必须使用哪种框架来实现这一目标?
答案 0 :(得分: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));
希望这会有所帮助。