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:

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);
    });
 }
Dans mon template HTML, j'appelle creationPolice() par un bouton dans un formulaire:

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:

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 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