Угловой 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» для меня недоступны.
**
Попробуй это:
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 );
}
}
По какой-то причине 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;
}