net::ERR_CONNECTION_REFUSED avec http POST et Angular9-Php-Mysql
Bonjour,
Après avoir suivi les conseils d'experts du forum, j'ai réussi à faire marcher le GET de mon projet. Je suis donc passé au POST qui malheureusement ne marche pas. J'ai une erreur "net::ERR_CONNECTION_REFUSED" sans plus de détail. Je passe voir les log coté serveur php, aucun message. Le plus surprenant c'est que le GET ne marche plus dès lors que le POST a planté une fois.
J'ai un service pour le POST:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| import { Injectable } from '@angular/core';
import { HttpClient, HttpErrorResponse, HttpParams, HttpHeaders } from '@angular/common/http';
import { Observable, throwError } from 'rxjs';
import { map, catchError, retry } from 'rxjs/operators';
import { carinputdata, cardetails } from '../models/contract.model';
@Injectable({
providedIn: 'root'
})
export class ConnectService {
PHP_API_SERVER = '//localhost:8080';
carinputdata: carinputdata[];
constructor(private HttpClient: HttpClient) { }
readPolicies(): Observable<carinputdata[]>{
return this.HttpClient.get<carinputdata[]>(`${this.PHP_API_SERVER}/api/read.php`);
}
httpOptions = {
headers: new HttpHeaders({
'Content-Type': 'application/json',
'Authorization': 'mon-jeton'
})
};
createPolicy(cardetails: cardetails): Observable<cardetails>{
console.log("Avant lappel du post");
return this.HttpClient.post<cardetails>(`${this.PHP_API_SERVER}/api/create.php`, cardetails, this.httpOptions);
}
} |
et je l'appelle dans mon composant comme suit:
Code:
1 2 3 4 5 6
| creationPolice() {
console.log("Befor request, ", this.cardetails);
this.connectService.createPolicy(this.cardetails).subscribe((cardetails:cardetails)=>{
console.log("Policy created, ", cardetails);
});
} |
Dans mon template HTML, j'appelle creationPolice() par un bouton dans un formulaire:
Code:
1 2 3 4 5
| <div class="row d-flex justify-content-center">
<div class="col d-flex justify-content-center">
<button class="btn btn-outline-rounded btn-primary" type="button" (click)="creationPolice()">Valider votre commande</button>
</div>
</div> |
Dès que je clique sur le bouton, j'ai le message d'erreur suivant dans la console:
Citation:
zone-evergreen.js:2845 POST
http://localhost:8080/api/create.php net::ERR_CONNECTION_REFUSED
ERROR HttpErrorResponse*{headers: HttpHeaders, status: 0, statusText: "Unknown Error", url: "//localhost:8080/api/create.php", ok: false,*…}
Et plus rien ne marche. Je suis obligé de tout relancer
Mon create.php est sur un serveur easyphp:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| <?php
require 'database.php';
$postdata = file_get_contents("php://input");
if(isset($postdata) && !empty($postdata))
{
$request = json_decode($postdata,true);
$numero = $request->numero;
$marque = $request->marque;
$sql = "INSERT into 'carinputdata' (null, 'numero', 'marque')
VALUES ('id', '{$numero}', '{$marque}')";
if($db->query($sql))
{
http_response_code(201);
$carinputdata = [
'id' => mysqli_insert_id($db),
'numero' => $numero,
'marque' => $marque];
echo json_encode($carinputdata);
}
else
{
http_response_code(422);
}
}
?> |
J'ai cherché partout des solutions mais ça ne marche hélas pas. Pourrais-je avoir un regard d'expert s'il vous plait?
Merci d'avance
Cordialement