在 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
-数组。
无论我做什么,无论我尝试什么,我都无法将这些变量输入到我的控制器中。
我用 fetch
和 formData
代替 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}`);
});
我正在尝试将表单数据从 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
-数组。
无论我做什么,无论我尝试什么,我都无法将这些变量输入到我的控制器中。
我用 fetch
和 formData
代替 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}`);
});