2017-06-13 26 views
0

我無法在我的Angular App中解決我的問題。我已經嘗試過這麼多,但是我無法讀出從Angular 4發送的發佈數據的正文。也許有人可以找到問題的答案?會很好!在php中無法獲取角度數據

有一種服務,它將數據發送到我的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

是啊!我知道了!

經過3天試圖解決這個狗屎,我明白了!也許有人有同樣的問題,所以希望我可以幫助你:

問題是單人字符。

只是改變了API-URL來源:

let apiUrl = 'api/v1/login'; 

let apiUrl = 'api/v1/login/'; 

...和一切正常!