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

AngularJS Discussion :

Ajax ne fonctionnant toujours pas


Sujet :

AngularJS

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    epicier
    Inscrit en
    Avril 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : epicier

    Informations forums :
    Inscription : Avril 2015
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Ajax ne fonctionnant toujours pas
    Bonjour,

    J'apprends à utiliser javascript et angularjs en particulier. Je voudrais pouvoir récuperer des données d'une base spécialisée dans la musique:
    Par exemple, pour Coldplay:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://www.theaudiodb.com/api/v1/json/1/searchalbum.php?s=Coldplay
    Mais je n'ai aucun retour dans le scope.

    Par contre, si je demande la page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://www.w3schools.com/angular/customers.php
    Alors la ca marche.
    J'ai fait vérifier que le json est correct pour le premier avec le site http://jsonlint.com/,

    Voici le petit bout de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    monApp.controller('tp3Controller', function($http, $scope) {
        var urlfound = "http://www.theaudiodb.com/api/v1/json/1/searchalbum.php?s=Coldplay";
        $scope.url = urlfound;
        $scope.data = null;
        //jQuery.get(urlfound, function(response){$scope.data = response;}); 
        $http.get(urlfound).success(function(response) {
            $scope.data = response;
        });
    });
    J'obtiens le même résultat avec jquery.
    Est-ce que je dois oublier cette base de données? C'est une si bonne idée pourtant.

    PS: Je ne compte pas lancer un site commercial avec leur db, je veux juste faire mon tp.

    Merci de votre aide.

  2. #2
    Membre expérimenté Avatar de slim
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2002
    Messages
    938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2002
    Messages : 938
    Points : 1 337
    Points
    1 337
    Par défaut
    Bonjour,

    Quel est le contenu de la variable "response" dans la fonction "success" ?
    Essaiede faire un console.log ou voir en debug s'il y a une erreur.

    [EDIT] je vais reformuler ma réponse
    alors, tu fais exactement la meme chose que ce qui est dit dans ma première réponse et tu ajoute une fonction error après la fonction success.
    Lien vers le Service $http

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    epicier
    Inscrit en
    Avril 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : epicier

    Informations forums :
    Inscription : Avril 2015
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Salut Slim,

    Je viens d'utiliser la callback error :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    url: http://www.theaudiodb.com/api/v1/json/1/searchalbum.php?s=Coldplay
     
    log: ECHEC
     
    data:
     
    status: 0
     
    headers:
     
    config: {"method":"GET","transformRequest":[null],"transformResponse":[null],"url":"http://www.theaudiodb.com/api/v1/json/1/searchalbum.php?s=Coldplay","headers":{"Accept":"application/json, text/plain, */*"}}
    log veux juste dire que c'est la callback error qui a été appelée. Je vais aussi voir pour des logs plus détaillés. Par contre, je fais tourner ca sur apache2 donc je n'ai pas les fonctionalités de debug je crois.

  4. #4
    Nouveau Candidat au Club
    Femme Profil pro
    epicier
    Inscrit en
    Avril 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : epicier

    Informations forums :
    Inscription : Avril 2015
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Il se pourrait qu'il soit nécessaire d'obtenir une clef. Je suis désolé si c'est le cas Slim.
    J'en dirai plus bientôt.

  5. #5
    Membre expérimenté Avatar de slim
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2002
    Messages
    938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2002
    Messages : 938
    Points : 1 337
    Points
    1 337
    Par défaut
    tu dois faire le debug sur ton navigateur (F12) et non sur le serveur car le code AngularJS s'exécute sur le client et non sur le serveur... et voir le contenu de la variable response.
    Mais avant cela, ecris ton appel comme ceci (cf doc):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $http.get('/someUrl').
      success(function(data, status, headers, config) {
        // this callback will be called asynchronously
        // when the response is available
      }).
      error(function(data, status, headers, config) {
        // called asynchronously if an error occurs
        // or server returns response with an error status.
      });
    et vois le contenu des reponses des deux methodes, success ou error.

    De plus, il n'y a pas de code http 0. ton appel ne doit pas être bon. Il faut que tu revoies la documentation de l'API appelée.

  6. #6
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Mai 2013
    Messages : 36
    Points : 71
    Points
    71
    Par défaut
    je viens de lancer l'URL dans REST Client et il y a bien une reponse status 200 (OK). Une piste: peut etre a tu deja fait beaucoup de test et leur API rejette tes appels?

Discussions similaires

  1. Réponses: 4
    Dernier message: 02/11/2012, 21h52
  2. [AJAX] script ajax qui fonctionne pas tout le temps
    Par krfa1 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 30/05/2007, 11h12
  3. [AJAX] Script ajax ne fonctionne pas sur IE :( !
    Par Funattitude dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 10/08/2006, 18h02
  4. Réponses: 4
    Dernier message: 29/05/2006, 05h48

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