Partage
  • Partager sur Facebook
  • Partager sur Twitter

IONIC 3 et MySQL

ERROR SyntaxError: Unexpected end of JSON input

Sujet résolu
    10 octobre 2018 à 16:25:44

    Bonjour à tous,

    Je tente d'accéder à des données d'une bdd MySQL depuis IONIC 3 et je n'arrive pas à afficher les données JSON retournées.

    Voici l'erreur que j'ai : ERROR SyntaxError: Unexpected end of JSON input

    Fichier.ts:

    import { Component } from '@angular/core';
    import { IonicPage, NavController, NavParams, AlertController } from 'ionic-angular';
    import { Headers, RequestOptions, Http}  from "@angular/http";
    import { LoadingController } from 'ionic-angular';
    
    
    import { HomeService } from '../../services/home-service';
    import { IService } from '../../services/IService';
    
    import { DetailPage } from '../detail/detail';
    
    
    @IonicPage()
    @Component({
      selector: 'page-liste',
      templateUrl: 'liste.html',
      providers: [HomeService],
    })
    
    export class ListePage {
    
       public items : Array<any> = [];
    
      constructor(public navCtrl: NavController, public navParams: NavParams, public alertCtrl: AlertController, public http : Http, public loading: LoadingController, public service:HomeService) {
      }
    
      ionViewWillEnter() : void
      {
        this.load();
      }
    
    
      load() : void
      {
        let loader = this.loading.create({
          content: 'Recherche des offres',
        });  
        loader.present().then(() => {
          this.http.post('https://mon.url.com/offres-liste.php').map(res => res.json()).subscribe(res => {
            console.log(res)
            loader.dismiss()
            if(res == "Pas d'enregistrements"){
              let alert = this.alertCtrl.create({
                title: "Désolé",
                subTitle: (res),
                buttons: ['OK']
              });
              alert.present();
            } else {
              console.dir(res);
             this.items = res;
            }
          });
        });
      }  

    Le fichier PHP qui doit me retourner les données :

    <?php
    	if (isset($_SERVER['HTTP_ORIGIN'])) {
    		header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}");
    		header('Access-Control-Allow-Credentials: true');
    		header('Access-Control-Max-Age: 86400');    // cache for 1 day
    	}
    	
    	// Access-Control headers are received during OPTIONS requests
    	
    	if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {
    		if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD']))
    			header('Access-Control-Allow-Methods: GET, POST, OPTIONS');        
    		if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']))
    			header("Access-Control-Allow-Headers:{$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");
    		exit(0);
    	}
    
    	require 'dbconnect.php';
    	$data    = array();
    	
    	
    	$sql = "SELECT id, titre, description  FROM offre ORDER BY id ASC";
    	
    
    	$result = mysqli_query($con,$sql);
    	$count = mysqli_num_rows($result);
    	
    	//$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
    	
    	while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
    		// Assign each row of data to associative array
    		$data[] = $row;
    	}
    
                          
    	if($count > 0) {
    		$response = $data;
    	} else {
    		$response = "Pas d'enregistrements";         
    	}
    	
    	echo json_encode($response);
    		
    
    
    ?>

    Merci de votre aide !


    • Partager sur Facebook
    • Partager sur Twitter

    IONIC 3 et MySQL

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown