我无法在Angular App中解决我的问题。我已经尝试过这么多,但我无法读出从Angular 4发送的帖子数据的正文。也许有人可以找到问题?真是太好了!
有一项服务,它将数据发送到我的PHP-Api。相关功能如下所示:
login(email: string, password: string): Observable<UserDto> {
let apiUrl = 'api/v1/login';
let userAuthDto: UserAuthDto = new UserAuthDto(email, password);
let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers });
return this.http.post(apiUrl, { email, password }, options)
.map(res => res.json())
.map(res => console.log(res))
.map((data: any) => UserDto.fromJson(data[0]))
.do(res => { if (res.auth_success) {
localStorage.setItem('auth_token', res.token);
}})
.catch(this.handleError);
}
我的API中的相关代码如下所示:
header("Content-Type: application/json");
//Get database connection
$db = mysqli_connect("localhost", "******", "********", "*******");
if(!$db) {
exit("Alert: ".mysqli_connect_error());
}
//Set connection charset to UTF-8
mysqli_set_charset($db, "utf8");
$data = file_get_contents('php://input');
$test = $data;
$resultArray = array();
$sqlQuery = "SELECT id, username FROM user WHERE id = 4";
//Database query
$myresult = mysqli_query($db, $sqlQuery);
while($row = mysqli_fetch_assoc($myresult))
{
$row['auth_success'] = true;
$row['test'] = $test;
$resultArray[]=$row;
}
echo json_encode($resultArray);
那只是为了测试。但问题是无论我做什么file_get_contents('php://input');
都是一个空字符串。你知道这是什么问题吗?我正在使用XAMPP。
非常感谢!
答案 0 :(得分:0)
呀!我明白了!
在试图解决那个狗屎3天后,我明白了!也许有人有同样的问题,所以希望我可以帮助你:
问题是一个字符。
刚刚更改了API-Url:
let apiUrl = 'api/v1/login';
到
let apiUrl = 'api/v1/login/';
......一切正常!