Как получить значение параметра из ответа httpClient в angular6 с помощью php API?

У меня есть метод angular, который отправляет значения в php api, когда http-сообщение успешно, я получаю ответ json, но когда я пытаюсь получить доступ к res.status или любому параметру в объекте json, который я получаю Property 'status' does not exist on type 'Object', Как я могу получить значение параметра в объекте ответа?

Вот мой угловой класс

export class QuizComponent implements OnInit {

constructor(private http: HttpClient) { }


myData = { param1: 'This is param 1', param2: 'this is param 2' }


sendmydata(){

const req = this.http.post('http://myhost.com/phpapi/api.php',this.myData)
.subscribe(
res => {
console.log(res);
// how can I access res.status here?

res.status;//this line says Property 'status' does not exist on type 'Object'

},
err => {
console.log("Error occured");
}
);
}

и вот мой PHP:
(Я знаю о готовых высказываниях, здесь все просто):

 <?php

header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");
header("Access-Control-Allow-Methods: POST");
header("Access-Control-Max-Age: 3600");
header("Access-Control-Allow-Headers: Content-Type, Access-Control-
Allow-Headers, Authorization, X-Requested-With");


$db = "dbname";//Your database name
$dbu = "dbuser";//Your database username
$dbp = "dbpass";//Your database users' password
$host = "localhost";//MySQL server - usually localhost


$dblink = mysql_connect($host,$dbu,$dbp);
$seldb = mysql_select_db($db);


$postdata = file_get_contents("php://input");
$request = json_decode($postdata);

$item1 = $request->param1;
$item2 = $request->param;

$sql = mysql_query("INSERT INTO `$db`.`table` (`id`,`item1`,`item2`)
VALUES ('','$item1','$item2');");

if($sql){

if (strcmp($item1, "") != 0) {
echo '{"status":"ok"}';
}

}else{
echo '{"status":"error"}';

}

mysql_close($dblink);//Close off the MySQL connection to save resources.
?>

0

Решение

Предполагая, что у вас есть интерфейс, определенный для вашего ответа:

interface Response {
status: string;
}

Добавьте информацию о типе в ваш post вызов:

this.http.post<Response>('http://myhost.com/phpapi/api.php',this.myData)

или любой, если нет определения типа

this.http.post<any>('http://myhost.com/phpapi/api.php',this.myData)
1

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

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector