在 NativeScript 中使用 HTTP 将 Post-data 发送到 TYPO3-Webservice

Using HTTP in NativeScript to send Post-data to a TYPO3-Webservice

我正在尝试将表单数据从 NativeScript 应用发送到 TYPO3-Webservice。

这是我正在使用的JavaScript:

httpModule.request({
            url: "https://my.domain.tld/webservice?action=login",
            method: "POST",
            headers: { "Content-Type": "application/json" },
            content: JSON.stringify({
                username:username,
                password:password
            })
        }).then((response) => {
             console.log("got response");
             console.log(response.content);
            //result = response.content.toJSON();
            callback(response.content.toJSON());

        }, (e) => {

            console.log("error");
            console.log(e);

        });

但我无法在控制器中读取此数据。即使这样:

$rest_json = file_get_contents("php://input");
$postvars = json_decode($rest_json, true);

$postvars 为空。 $_POST 也是空的(根据某些文档,这是因为数据作为 JSON 发送,因此未填充 $_POST-数组。

无论我做什么,无论我尝试什么,我都无法将这些变量输入到我的控制器中。

我用 fetchformData 代替 JSON.stringify 试过了,结果相同。

我可能要补充一点,当我在 TYPO3 的 index.php 中添加 PHP 部分时,$postvars 被填充。所以我猜有些东西丢失了,直到控制器被调用。

有什么想法吗?

nativescript 部分似乎没问题,您的问题必须在服务器端更正。

我使用similare call及其作品

// send POST request
httpModule.request({
    method: "POST",
    url: appSettings.getString("SERVER") + '/product/list',
    content: JSON.stringify(data),
    headers: {"Content-Type": "application/json"},
    timeout: 5000,
}).then(response => { // handle replay
    const responseAsJson = response.content.toJSON();
    console.log('dispatchAsync\n\tresponse:', responseAsJson);
}, reason => {
    console.error(`[ERROR] httpModule, msg: ${reason.message}`);
});