electron POST请求不包括电子应用程序中的有效载荷数据

klsxnrf1  于 2023-03-06  发布在  Electron
关注(0)|答案(1)|浏览(187)

我正在尝试让我的服务器接受从我的电子应用程序中发送的错误报告和功能请求。在主线程上使用net.requestshttps模块,GET请求工作得很好,但POST似乎不包括数据,无论我尝试什么。我成功地得到了200响应,还有一个服务器端的错误,说发送的键没有找到,用Postman测试的时候服务器脚本是可以工作的,所以我认为问题不在这里。
我的代码:

const payload = JSON.stringify({report: "1234"});

const request = net.request({
    method: 'POST',
    protocol: 'https:',
    hostname: 'site.tld',
    path: '/backend-script.php',
    redirect: 'follow'
});

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

    response.on('data', (chunk) => {
        console.log(`BODY: ${chunk}`)
    });
});

request.setHeader('Content-Type', 'application/json');
request.write(payload, 'utf-8');
request.end();

使用net.requests模块GET和POST请求都会在控制台中显示以下消息:

Request is Finished
Last Transaction has occurred
[91902:0301/111653.091508:ERROR:trust_store_mac.cc(838)] Error parsing certificate:
ERROR: Failed parsing extensions

但是考虑到https根本没有抱怨,我也很想排除这一原因。
我试过在服务器端记录所有传入的POST数据,但从Electron发送的任何数据都不包括任何数据,而Postman则按预期工作。
任何想法都是非常受欢迎的。

qyuhtwio

qyuhtwio1#

问题是我用Content-Type: application/json发送请求,然后尝试从PHP的$_POST数组中读取它。使用不同的内容类型+格式(即:Content-Type: application/x-www-form-urlencodedreport=my_json_string),或者使用$data = json_decode(file_get_contents('php://input'))->report;在PHP中阅读JSON,都可以按预期工作。TIL。

相关问题