IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Angular Discussion :

net::ERR_CONNECTION_REFUSED avec http POST et Angular9-Php-Mysql


Sujet :

Angular

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 71
    Points : 34
    Points
    34
    Par défaut 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 : 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

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2019
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2019
    Messages : 707
    Points : 1 030
    Points
    1 030
    Par défaut
    jusqu'ou arrive l'execution du code dans cette partie ?

    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);
        }
      }
    ?>

  3. #3
    Membre expert
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Points : 3 004
    Points
    3 004
    Par défaut
    ça à l'air d'etre une erreur coté php
    une erreur de connexion mySQL coté PHP donc rien à voir avec Angular

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 71
    Points : 34
    Points
    34
    Par défaut
    Bonjour Krakatoa

    Je ne sais vraiment pas à quel niveau il plante lors de l'appel de create.php. Est-ce lors du passage des chaines de connexion par dataabse.php?

    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
    <?php
     
    header("Access-Control-Allow-Origin: http://localhost:4200");
    header("Access-Control-Allow-Methods: PUT, GET, POST, DELETE");
    header("Access-Control-Allow-Headers: Origin, X-Requested-With, Authorization, Content-Type, Accept");
     
    // db credentials
    define('DB_HOST', 'localhost');
    define('DB_USER', 'root');
    define('DB_PASS', '');
    define('DB_NAME', 'projectbase');
     
    // Connect with the database.
    function connect()
    {
      $connect = mysqli_connect(DB_HOST ,DB_USER ,DB_PASS ,DB_NAME);
     
      if (mysqli_connect_errno($connect)) {
        die("Failed to connect:" . mysqli_connect_error());
      }
     
      mysqli_set_charset($connect, "utf8");
     
      return $connect;
    }
    $con = connect();
    ?>

    Je cherche comment debuguer ce php à partir de chrome. Ca me permettra d'identifier l'instruction qui pose problème...

    Merci

  5. #5
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2019
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2019
    Messages : 707
    Points : 1 030
    Points
    1 030
    Par défaut
    on ne peut pas déboguer du php avec le navigateur puisque php s'exécute coté serveur

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    <?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;
     
    echo $numero . " / " . $marque;
     
        $sql = "INSERT into 'carinputdata' (null, 'numero', 'marque')
        VALUES ('id', '{$numero}', '{$marque}')";
     
     echo "00000000000";
     
        if($db->query($sql))
        {
     
    echo "11111111111";
     
          http_response_code(201);
          $carinputdata = [
          'id' => mysqli_insert_id($db),
          'numero' => $numero,
          'marque' => $marque];
          echo json_encode($carinputdata);
        }
        else
        {
     
    echo "2222222222222";
     
          http_response_code(422);
        }
      }
    ?>



    dans outils de developement du navigateur

    clique reseau
    clique sur la requete: .....url.../create.php
    clique sur l'onglet: response

    ça affiche quoi dans cet onglet ?

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 71
    Points : 34
    Points
    34
    Par défaut
    Bonjour Ktakatoa

    Il me met "Failed to load response data"...

  7. #7
    Membre expert
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Points : 3 004
    Points
    3 004
    Par défaut
    parceque c'est une erreur PHP
    faut voir avec le forum PHP

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 71
    Points : 34
    Points
    34
    Par défaut
    Bonjour Dukoid,

    Vous avez raison, je vais creuser coté php.

    Merci

Discussions similaires

  1. [MySQL] problème avec mon application de recherche php/mysql
    Par cuisto44000 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 05/06/2008, 03h01
  2. [Upload] Upload de fichier avec HTTP POST
    Par Invité(e) dans le forum Langage
    Réponses: 8
    Dernier message: 22/05/2008, 11h04
  3. Redirection php avec données POST et fsockopen
    Par Cylie34 dans le forum Langage
    Réponses: 1
    Dernier message: 26/02/2007, 17h10
  4. bot HTTP probleme avec les POST
    Par djo0012 dans le forum C++
    Réponses: 3
    Dernier message: 21/07/2006, 05h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo