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 : Sélectionner tout - Visualiser dans une fenêtre à part
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:
Dans mon template HTML, j'appelle creationPolice() par un bouton dans un formulaire:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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); }); }
Code Angular : Sélectionner tout - Visualiser dans une fenêtre à part
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:
Et plus rien ne marche. Je suis obligé de tout relancerzone-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,*…}
Mon create.php est sur un serveur easyphp:
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
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
Partager