(PHP) Как получить объект из HttpClient (Angular 6)

Угловой 6:

import {Injectable} from '@angular/core';
import { HttpClient } from '@angular/common/http';

@Injectable()
export class GetData {
constructor( private http: HttpClient ) { }
post( ) {
data = [ {username : 'test',password : '1234' }];
return this.http.post('login.php' , data );
}
}

PHP: login.php

<?php

$username = $_POST['username'];
$password = $_POST['password'];

?>

Как я могу получить данные из Angular 6, то есть [Object] в $ username, $ password

**

«$ _POST» и «$ _REQUEST» для меня недоступны.

**

0

Решение

Попробуй это:

import {Injectable} from '@angular/core';
import { HttpClient,HttpParams  } from '@angular/common/http';

@Injectable()
export class GetData {
constructor( private http: HttpClient ) { }
post( ) {
let data= new HttpParams()
.append("username", "test")
.append("password", "1234")


return this.http.post('login.php' , data );
}
}
0

Другие решения

По какой-то причине Angular, похоже, отправляет сообщения POST, которые заканчиваются в php://input вместо $_POSTи тогда вы можете json_decode их в объект и использовать их.

С угловой стороны — я просто выкидываю данные на сервер, меня не интересует ответ … пытался заставить его работать без целого subscribe() вещь, но это не будет POST вообще для меня в тот момент … Обратите внимание, что есть private http: Http в конструкторе для файла TS / компонента / класса это в …

postChatMessage(room: string, user: string, msg: string, timestamp: number) {
var cmsg = new ChatMessage(room, msg, user, timestamp);
return this.http.post(BASEURL + "/chat", cmsg)
.subscribe(
(v) => {},
response => {},
() => {}
);
}

PHP на внутреннем сервере, который обрабатывает отправку POST — да, я ленивый и просто храню всю отправленную строку JSON плюс несколько других вещей, но мне легче разобраться для быстрой школьной вещи —

if (($_SERVER['REQUEST_METHOD'] == "POST") &&
(strpos($_SERVER['REQUEST_URI'], "/json_service/chat") === 0)) {
$d = file_get_contents("php://input");
$d = json_decode($d);
$d->timestamp = time();
$q = "insert into json_chat values(?,?,?,?)";
$a = array(null, time(), $d->room, json_encode($d));
$res = executeQuery($q, $a);
print(json_encode(array($res[0])));  // boolean fwiw
exit;
}
0