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

AJAX Discussion :

Accéder à un fichier CSV via une API avec AJAX


Sujet :

AJAX

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2016
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Accéder à un fichier CSV via une API avec AJAX
    Bonjour,

    J'aimerai savoir si il est possible de télécharger un fichier CSV, accessible uniquement via une API. Je peux récupérer les fichiers de cette API uniquement par URL. Après avoir récupéré ce fichier je dois l'utiliser pour générer des graphiques (Highcharts).

    Pour ce faire, je souhaite utiliser directement Ajax, je ne peux pas passer par un autre langage côté back end.
    L'API est sur un autre serveur ce qui complique les choses avec le Cross-domain.

    Avez-vous une solution ?

    Je suis conscient que c'est peut être impossible.

    Merci d'avance,

    Sonica

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Hello,

    ça dépend tout simplement si cette API autorise le cross-domain. On se fiche complètement que ce soit du CSV, du XML ou un dump de wikipédia.

    Si elle autorise le cross-domain, alors la solution est de lire par quel moyen elle autorise le cross-domain, et faire ça.
    Sinon, c'est impossible. (Enfin, tu dois t'arranger pour que tous tes visiteurs installent une extension navigateur que tu as fait toi-même et qui vire les protections cross-domain, quoi. Pas totalement totalement impossible, mais bon.)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2016
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Salut,

    Merci de t'as réponse thelvin.

    Oui je pense qu'elle autorise le cross-domain car j'ai pu récupérer des données au format XML.

    Mais le soucis c'est que lorsque je fais mon appel Ajax vers un fichier CSV de cette API je ne récupère pas le contenu du fichier. J'ai regardé dans Firebug pour vérifier que ma requête est bien fonctionné, j'ai bien "200 OK" mais en corps de la réponse je n'ai rien, c'est vide.

    Est-il vraiment possible d’accéder au contenu d'un fichier csv distant via Ajax ?

  4. #4
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    Citation Envoyé par sonica Voir le message
    Oui je pense qu'elle autorise le cross-domain car j'ai pu récupérer des données au format XML.
    la requête directe ne peut pas vérifier les domaines autorisés donc cela ne prouve pas que ça devrait fonctionner avec AJAX

    Pour vérifier les autorisations, regardez la console de développement pour la requête AJAX et regardez s'il y a un entête Access-Control-Allow-Origin dans la réponse.

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2016
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Salut,

    Oui Mathieu elle autorise le cross-domain, Il y'a "Access-Control-Allow-Origin : * " dans le corps de la réponse.
    Mais je comprends pas pourquoi je ne peux pas accéder au contenu du fichier CSV.

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    On ne va pas deviner sans code, mais par exemple,

    avec XMLHttpRequest pour récupérer du CSV et non pas du XML, il faut aller lire responseText ou response tout court mais jamais responseXML. C'est à dire faire l'inverse que pour lire du XML.

    Mais ce n'est qu'une piste de ce qui peut se passer.
    Je me répète, on va pas deviner sans code, et au fond ça aurait été plus productif de nous montrer l'API.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2016
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Oui je peux vous montrer mon code mais je veux juste avoir un exemple de code ou une piste comme tu me l'as donnée Thelvin.
    Voici mon code j'ai essayé deux méthodes mais elles donnent le même résultat.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
       $.ajax({	type: "POST",
            url: "https://xz.fr/api.php?fmt=csv&testRef=958634&fields=VITESSE",
            success: function(data, textStatus, jqXHR) {
              alert("Recuperation des informations");
              console.log("les données sont:"+data);
            },
            error: function() {
              alert('Erreur dans la requ�te au serveur.');
            }
      });

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      var target = 'https://xz.fr/api.php?fmt=csv&testRef=958634&fields=VITESSE';
      var xmlHttp = new XMLHttpRequest();
      xmlHttp.open( "GET", target, false ); 
      xmlHttp.send( null );
      var contenuCSV = xmlHttp.responseText;
      console.log(contenuCSV);

    Et j'aurais bien aimé vous donner l'API mais c'est une API interne auquel vous ne pouvez pas accéder.

  8. #8
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    Citation Envoyé par sonica Voir le message
    Oui je peux vous montrer mon code mais je veux juste avoir un exemple de code ou une piste comme tu me l'as donnée Thelvin.
    Voici mon code j'ai essayé deux méthodes mais elles donnent le même résultat....
    on est très contant pour toi qu'elle donne le même résultat. mais ça ne en dit pas plus.
    A+JYT

Discussions similaires

  1. Importer un fichier csv dans une table avec une commande sql ?
    Par pepito62 dans le forum Import/Export
    Réponses: 8
    Dernier message: 25/03/2015, 15h10
  2. Génération fichier .csv via une requête SQL
    Par matnys dans le forum Import/Export
    Réponses: 5
    Dernier message: 12/12/2011, 22h03
  3. Réponses: 2
    Dernier message: 20/04/2011, 15h26
  4. Imprimer dans un fichier PRN via une API ?
    Par [ZiP] dans le forum VBA Access
    Réponses: 4
    Dernier message: 10/05/2010, 16h46
  5. Réponses: 45
    Dernier message: 14/02/2008, 15h41

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