11488 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

je ne parviens pas à faire passer d'information dans le header à l'aide fetch, Voici mon code :

let myHeaders = new Headers();
    myHeaders.append("Content-Type", "application/json");
    myHeaders.append("AAAAAAAA", "BBBBBBBBBBB");

    for (const value of myHeaders.values()) {
      console.log(value);
    }

    let myInit = {
      method: "POST",
      headers: myHeaders,
      mode: "no-cors",
      cache: "no-cache",
      credentials: "same-origin",
      redirect: "follow",
      referrerPolicy: "no-referrer",
      body: data
    };

    fetch(url, myInit)
      .then(function (response) {
        return response;
      });


En utilisant le site webhook.site ou simplement l'inspecteur j'ai ce résultat pour le header :

connection 	close
sec-fetch-site 	cross-site
sec-fetch-mode 	no-cors
sec-fetch-dest 	empty
origin 	null
content-length 	108
content-type 	text/plain;charset=UTF-8
accept-encoding 	gzip, deflate, br
accept-language 	fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3
accept 	*/*
user-agent 	Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0
host 	webhook.site 


Je n'ai donc pas les nouvelles données dans le header, quelqu'un a t'il une idée de pourquoi cela ne fonctionne pas?

Merci de votre aide.
Modifié par posset (05 Aug 2023 - 14:32)
Modérateur
Salut,

Tu utilises quoi comme langage serveur ? Chez moi, je n'ai pas de souci (j'ai fait un petit test en python avec Flask). J'ai juste les aaaaa en minuscule. Pourquoi veux-tu injecter une donnée dans le header ?


127.0.0.1 - - [07/Aug/2023 00:59:39] "GET /static/app.js HTTP/1.1" 200 -
Host: localhost:8000
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0
Accept: application/json
Accept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate, br
Aaaaaaaa: BBBBBBBBBBB
Content-Type: application/json
X-Requested-With: XMLHttpRequest
Origin: null
Content-Length: 89
Connection: keep-alive
Cookie: csrftoken=iBwIVNaJyywDnSuSPAA5CTzsW8imZobjZfP0LJZBFbyTgTueMz72LHzTAD6P3cBD; sessionid=zwu8eoapikjwbiryuwij58dfwexsdwon; session=eyJjc3JmX3Rva2VuIjoiMzY2NTk3YjYyOWZiMGUxNDA0NjdkYzE4ZDBkNTUwNDMyYjMyOGI4MCJ9.ZIHiqg.BewDCxmMmpDGZF-0730-tiouVpM; PHPSESSID=ma2ops64mg7n590mfmrh0hbpm3
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: same-origin
Sec-Fetch-Site: same-origin

Modifié par niuxe (07 Aug 2023 - 01:10)
Bonjour,

Merci de ta réponse.

Mon langage serveur sera java mais là j'utilise l'inspecteur pour voir ce qui est envoyé et ma donnée n'est pas envoyée, je vais voir pour mettre en minuscule au cas où.

Merci
Non ça en change rien, je viens d'essayer en GET mais j'ai le même résultat c'est vraiment étrange comme comportement.
Modérateur
De mon côté, que ce soit un envoi pour apache ou en serveur python, j'envoie bien le header en post

En console du navigateur, as tu des messages d'erreurs ? Je ne connais pas Java. Mais est ce que tu as des messages d'erreurs ?
Modifié par niuxe (07 Aug 2023 - 15:33)
Non aucune erreur dans la console.

J'ai fait une version statique de mon code (donc sans serveur) et j'ai le même soucis , je ne sais pas ce que j'ai fait mais ça va être compliqué à trouver je ne vais pas t'embêter plus longtemps j'imagine que c'est un truc trop spécial pour comprendre à distance.

En tout cas merci de ton aide.
Bon j'ai avancé, c'est un problème avec les cors.

Comme ma requête est sur un serveur tiers les données en entête sont limitées à une liste donc on en peut pas en ajouter.

J'espère que ça servira à quelqu'un.