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

jQuery Discussion :

requete jquery ne fonctionne pas, avec postman oui.


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Mars 2020
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Mars 2020
    Messages : 62
    Par défaut requete jquery ne fonctionne pas, avec postman oui.
    Bonjour à tous,

    Je m'arrache les cheveux (je n'en ai déjà plus beaucoup) avec une requête jquery vers une api qui
    répond en json.

    La particularité de cette requête est qu'elle envoie à la fois un fichier image au format BMP et des éléments JSON.

    J'ai testé cette requête avec POSTMAN et ceci a fonctionné. En revanche, avec mon script cela ne fonctionne pas.

    Voici le formulaire qui demande le fichier image:
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <form role="lm2sformuploadimage" id="lm2sformuploadimage" enctype="multipart/form-data">
            <label for="overlayimage"  class="h6"><span style="white-space:nowrap;color: #7e0219">Votre logo</span></label><BR>
            <input type="file" id="file" name="uploadimage" accept="image/bmp">
            <button type="submit" class="btn-xsbtn-success">envoyer</button>
            </form>

    Voici le script qui envoie la requête:

    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
    function submituploadimage(){
    var fichier = $('input[name="uploadimage"]').get(0).files[0];
    var formData = new FormData();
    var json = [];
     
    json.push(
                     {
                     "apiVersion":"1.0",
                     "context": "abc",
                     "method": "uploadOverlayImage",
                     "params":
                     {
                            "scaleToResolution": "false"
                     },
                    }
                    );
     
        //JSON obj
        formData.append('image', fichier);
        formData.append('json', JSON.stringify( json ));
            $.ajax({
                "url": "/axis-cgi/uploadoverlayimage.cgi",
                "method":"POST",
                "timeout": 0,
                "processData":false,
                "mimeType": "multipart/form-data",
                "contentType": false,
                "data": formData,
                "complete": function(data){
                                alert("success");
                        }
              });
    }
    A l’exécution, l'API me renvoie toujours la même erreur:

        apiVersion	"1.0"
        method	"unknown"
        error	Object { code: 1004, message: "invalid request" }
        code	1004
        message	"invalid request"
    Hors je sais que les paramètres envoyés sont les bons, d'ailleurs cette requête quasi identique
    envoyée par POSTMAN fonctionne:

    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
    var form = new FormData();
    form.append("json", fileInput.files[0], "/D:/uploadoverlay/json.txt"); /* dans ce fichier se trouvent les mêmes paramètres que dans la requête précédente */
    form.append("image", fileInput.files[0], "/D:/uploadoverlay/exemplebmp.bmp");
     
    var settings = {
      "url": "http://192.168.1.38/axis-cgi/uploadoverlayimage.cgi",
      "method": "POST",
      "timeout": 0,
      "processData": false,
      "mimeType": "multipart/form-data",
      "contentType": false,
      "data": form
    };
     
    $.ajax(settings).done(function (response) {
      console.log(response);
    });
    J'ai comme l'impression que la requête json n'est pas comprise, tronquée ou mal interprétée.

    J'ai tenté beaucoup de choses sans succès, avez vous une idée ?
    D'avance merci.

  2. #2
    Membre confirmé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Mars 2020
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Mars 2020
    Messages : 62
    Par défaut
    salut,

    J'ai finalement trouvé .... il fallait créer un objet de type BLOB ... la documentation de l'api n'en parle absolument pas .....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    var formData = new FormData();
    var uploadimage = $('input[name="uploadimage"]').get(0).files[0];
    var jsonse = JSON.stringify({"apiVersion":"1.0","method":"uploadOverlayImage","context":"xxx","params":{"scaleToResolution":false}});
    // voici le secret ... incroyable qu'un constructeur qui a pinion sur rue propose des docs aussi légères ...
    var blob = new Blob([jsonse], {type: "application/json"});
    formData.append('json', blob);
    formData.append('image', uploadimage);
    Donc, je clôture !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. REQUETE qui ne fonctionne pas avec LIMIT ?
    Par jfab66 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 20/03/2017, 11h42
  2. [MySQL] Ma requet SELECT ne fonctionne pas avec un AND
    Par pierrot10 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 01/02/2017, 23h08
  3. [AC-2010] Requete parametre ne fonctionne pas avec formulaire
    Par alicec2000 dans le forum Access
    Réponses: 8
    Dernier message: 20/01/2015, 04h17
  4. Réponses: 2
    Dernier message: 04/01/2012, 18h59
  5. Slider jQuery ne fonctionne pas avec IE
    Par ElBono dans le forum jQuery
    Réponses: 2
    Dernier message: 21/12/2011, 10h30

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