Angular 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 :(得分: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 );
}
}
答案 1 :(得分:0)
由于某种原因,Angular似乎发送以php://input
而不是$_POST
结尾的POST,然后您可以json_decode
将它们变成对象并使用它们。
在Angular方面-我只是在服务器上扔数据,我不在乎响应...试图在没有整个subscribe()
的情况下使响应继续进行,但是对我来说根本不发布到那时...请注意,在其中的TS文件/组件/类的构造函数中有一个private http: Http
。
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;
}