所以这是我的http代码:
let headers = new Headers ({ 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers });
if (body == null)
{
body = {title: "hi", search: "person"};
}
console.log('body: ' + JSON.stringify(body));
return this.http.post('app/php/check.php', body, options)
.toPromise()
.then(response => response.text())
.catch(this.handleError);
我不确定服务器是否正确接收数据,但我确信它正在发布我可以看到的内容:
[
{
"select": "title",
"search": "person"
}
]
与萤火虫。
在我的php文件中,我所做的只是print_r($_REQUEST)
,但它返回的只是一个空数组。
我有什么问题吗?
奖金问题:
除了.json()
和.text()
之外,还有其他任何数据提取功能吗?
更新:
有趣的是,如果我使用网址app/php/check.php?fruit=apple
,则会有回复。有人知道这种差异吗?
答案 0 :(得分:1)
服务器应该接收身体变量中的数据。
以下是如何从函数中检索输出的示例。该示例使用的是JSON输出,但由于我使用的测试API用于发布数据。一个字符串将是相同的只是更改返回部分。
ngOnInit() {
this.postRquest().then(results => this.response = results);
}
postRquest(body) {
let headers = new Headers ({ 'Content-Type': 'application/x-www-form-urlencoded' });
let options = new RequestOptions({ headers: headers });
if (body == null)
{
body = {title: "hi", search: "person"};
}
console.log('body: ' + JSON.stringify(body));
return this.http.post('app/php/check.php', body, options)
.toPromise()
.then((response) => return response.json())
.catch(error => {
console.log( error );
});
}
确保您的内容类型标题为application / x-www-form-urlencoded
Plunker示例: https://embed.plnkr.co/UDYDp0gXx5H9OhmMKicL/