我试着将angular 2的数据发布到php:
let headers = new Headers();
headers.append('Content-Type', 'application/json');
var order = {'order': this.orders};
this.http.post('http://myserver/processorder.php', JSON.stringify(order), {
headers: headers
}).subscribe(res => {
console.log('post result %o', res);
});
字符串
在Angular 2中,只能将字符串作为数据发布,而不能将Json发布?这对我来说是可以的,但我很难在PHP上获得发布的数据。我试过$obj = $_POST['order'];
4条答案
按热度按时间8fq7wneg1#
Marc B是正确的,但是发生的是$_POST数组将包含一个空值,其中一个键设置为您正在传递的JSON字符串...
字符串
您可以通过使用...获取密钥来“抓住”它(尽管这是错误的方法)。
型
例如:
型
但是你可以做的是将数据作为值密钥对发送:
型
然后在PHP中,你可以使用以下命令获取数据:
型
需要注意的几点:
mm9b1k5b2#
我不知道这是不是不好的做法,但对我来说,这似乎是正确的,虽然它让我有点困扰
字符串
而在php中
型
x0fgdtte3#
同意你的观点,我们目前不能提供对象而不是字符串。这是一个正在进行中的功能。请看这个问题:
关于你在服务器端获取JSON数据的问题,这个问题应该可以帮助你:
5lhxktic4#
如果你在2023年还在阅读这本书...我遵循了上面的@Gabriel Martins的回答,这让我大部分时间都在那里...但是在调用中添加'data='是不必要的,因为我选择使用“php://input”。
该项目目前正在开发中,使用Apache,php(8.1),Angular 16。
因此,我的前端调用(使用Angular 16)看起来如下所示:
字符串
我的后端代码(使用PDO for mysql)和一个小的自定义库是:
型
实际调用PDO库的公共API代码是:
型
无论如何,我希望这能帮助到某人。我还确保在请求URL的末尾附加了一个斜线,以便将请求发送到'API/posts.php/'而不是'api/posts.php'