[Javascript] je déprime impossible d'arriver à faire un requête

SurfTheKaliYuga
2022-01-20 09:55:18

Le 20 janvier 2022 à 09:54:41 :
python en backendhttps://image.noelshack.com/fichiers/2016/24/1466366197-risitas10.png

arretez d'utiliser ce langage pour du backend.. cela doit rester un language pour faire du batch/machine learning/deep learning/math..

Ma boite utilise ça en backend.

Abou-tintin
2022-01-20 09:56:35

Jamais utilisé fetch, go ajax c'est plus simple

Salut-les-khey3
2022-01-20 09:57:44

Non mais rien à voir avec le back end je sur un userform je suis pas sur un site les khey

Azerban
2022-01-20 10:01:30

Sinon mec tu copies/colles ta requête de ton navigateur (copie as cURL) et tu la convertis ici en nodejs/fetch : https://curlconverter.com/#node-fetch

Salut-les-khey3
2022-01-20 10:03:38

Le 20 janvier 2022 à 09:58:45 :
Je pense que c'est lié à ton payload.

Dans ton code python tu l'envoies via payload, les identifiants sont donc envoyés en text/plain

Dans ton code javascript, tu envoies ton payload en json, ce n'est donc pas du text/plain. Il ne faut pas utiliser la méthode stringify dans ton code javascript.

D'accord je vois ducoup y'a pas moyen de le faire en js ?

SurfTheKaliYuga
2022-01-20 10:04:23

Le 20 janvier 2022 à 10:03:38 :

Le 20 janvier 2022 à 09:58:45 :
Je pense que c'est lié à ton payload.

Dans ton code python tu l'envoies via payload, les identifiants sont donc envoyés en text/plain

Dans ton code javascript, tu envoies ton payload en json, ce n'est donc pas du text/plain. Il ne faut pas utiliser la méthode stringify dans ton code javascript.

D'accord je vois ducoup y'a pas moyen de le faire en js ?

C'est la même chose que je t'ai dis, t'as juste à ne pas jsonify :(

T'as fais un print au moins pour voir ce que t'as en backend ?

Salut-les-khey3
2022-01-20 10:04:28

Le 20 janvier 2022 à 10:01:30 :
Sinon mec tu copies/colles ta requête de ton navigateur (copie as cURL) et tu la convertis ici en nodejs/fetch : https://curlconverter.com/#node-fetch

Je vais tester ça

400z
2022-01-20 10:05:08

Le 20 janvier 2022 à 09:54:41 :
python en backendhttps://image.noelshack.com/fichiers/2016/24/1466366197-risitas10.png

arretez d'utiliser ce langage pour du backend.. cela doit rester un language pour faire du batch/machine learning/deep learning/math..

allez les low recommencent à lâcher des généralisations sottes

Salut-les-khey3
2022-01-20 10:05:18

Le 20 janvier 2022 à 10:04:23 :

Le 20 janvier 2022 à 10:03:38 :

Le 20 janvier 2022 à 09:58:45 :
Je pense que c'est lié à ton payload.

Dans ton code python tu l'envoies via payload, les identifiants sont donc envoyés en text/plain

Dans ton code javascript, tu envoies ton payload en json, ce n'est donc pas du text/plain. Il ne faut pas utiliser la méthode stringify dans ton code javascript.

D'accord je vois ducoup y'a pas moyen de le faire en js ?

C'est la même chose que je t'ai dis, t'as juste à ne pas jsonify :(

Be non clé j'ai poster un deuxième code dans lequel je ne stringify pas et c'est pareil

SurfTheKaliYuga
2022-01-20 10:05:49

Le 20 janvier 2022 à 10:05:18 :

Le 20 janvier 2022 à 10:04:23 :

Le 20 janvier 2022 à 10:03:38 :

Le 20 janvier 2022 à 09:58:45 :
Je pense que c'est lié à ton payload.

Dans ton code python tu l'envoies via payload, les identifiants sont donc envoyés en text/plain

Dans ton code javascript, tu envoies ton payload en json, ce n'est donc pas du text/plain. Il ne faut pas utiliser la méthode stringify dans ton code javascript.

D'accord je vois ducoup y'a pas moyen de le faire en js ?

C'est la même chose que je t'ai dis, t'as juste à ne pas jsonify :(

Be non clé j'ai poster un deuxième code dans lequel je ne stringify pas et c'est pareil

OUAIS MAIS QU'EST CE QUE UT RETROUVES DANS TON BACK END ? T'AS BIEN LES BONNES VALEURS ?

NoC0de
2022-01-20 10:07:26

Lance un mockserver.
docker run -d --rm -p 1080:1080 mockserver/mockserver

Lance ta requête python sur le mockserver, puis la requête js sur le mockserver.
Tu compares ensuite les 2 requêtes reçues (tu peux les voir sur http://localhost/mockserver/dashboard ).

Ca devrait pas te prendre plus de 10 min pour visualiser le problème (check les headers, request params, body etc..).
Et ensuite fait en sorte que la requête JS soit exactement pareil que celle envoyée en python.

MonPtitLoup
2022-01-20 10:09:50

Essaye un truc comme ça

const form = new FormData();
form.append("user", tonuser);
form.append("pass", tonpassword);
fetch("monurl",{
method: "POST",
body: form,
mode: "no-cors",
redirect: "follow",
})

Salut-les-khey3
2022-01-20 10:09:53

Le 20 janvier 2022 à 10:05:49 :

Le 20 janvier 2022 à 10:05:18 :

Le 20 janvier 2022 à 10:04:23 :

Le 20 janvier 2022 à 10:03:38 :

Le 20 janvier 2022 à 09:58:45 :
Je pense que c'est lié à ton payload.

Dans ton code python tu l'envoies via payload, les identifiants sont donc envoyés en text/plain

Dans ton code javascript, tu envoies ton payload en json, ce n'est donc pas du text/plain. Il ne faut pas utiliser la méthode stringify dans ton code javascript.

D'accord je vois ducoup y'a pas moyen de le faire en js ?

C'est la même chose que je t'ai dis, t'as juste à ne pas jsonify :(

Be non clé j'ai poster un deuxième code dans lequel je ne stringify pas et c'est pareil

OUAIS MAIS QU'EST CE QUE UT RETROUVES DANS TON BACK END ? T'AS BIEN LES BONNES VALEURS ?

Je crois pas que ce soit possible, c'est une connexion non officiel c'est mon hebergeur qui dispose des log à la platforme cpanel

Azerban
2022-01-20 10:10:04

Le 20 janvier 2022 à 10:05:18 :

Le 20 janvier 2022 à 10:04:23 :

Le 20 janvier 2022 à 10:03:38 :

Le 20 janvier 2022 à 09:58:45 :
Je pense que c'est lié à ton payload.

Dans ton code python tu l'envoies via payload, les identifiants sont donc envoyés en text/plain

Dans ton code javascript, tu envoies ton payload en json, ce n'est donc pas du text/plain. Il ne faut pas utiliser la méthode stringify dans ton code javascript.

D'accord je vois ducoup y'a pas moyen de le faire en js ?

C'est la même chose que je t'ai dis, t'as juste à ne pas jsonify :(

Be non clé j'ai poster un deuxième code dans lequel je ne stringify pas et c'est pareil

Je pense qu'il faut mettre aussi {"Content-Type", "text/plain"} dans ton header

Fox_McCloud45
2022-01-20 10:10:49

La requête a bien l'air conforme dans l'onglet Réseau ? Essaie d'appeler l'API via Postman avec les données de la requête JavaScript.https://image.noelshack.com/fichiers/2018/18/4/1525379632-tmklit.png

Keldryn
2022-01-20 10:12:59

Le 20 janvier 2022 à 10:10:49 :
La requête a bien l'air conforme dans l'onglet Réseau ? Essaie d'appeler l'API via Postman avec les données de la requête JavaScript.https://image.noelshack.com/fichiers/2018/18/4/1525379632-tmklit.png

+ 1 go postman
Et check les formats de données, ou fais un log de tes variables reçues sur l'api

JeanFistelar
2022-01-20 10:13:45

Le 20 janvier 2022 à 09:44:23 :
Voici mon problème :

Depuis tout à l'heure j'essaie de me connecter à mon serveur web et impossible je reçois systématiquement une erreur 401 alors qu'avec python aucun problème

Voici le code

``fetch("monurl",{
method: "POST",
headers:{"Content-Type": "application/json"},
body: JSON.stringify({"user":"monusername","pass":"monmotdepasse"}),
mode: "no-cors",
redirect: "follow",
})``

En fait mon objectif final est de récupérer des information sur certaines page, et les afficher dynamiquement sur un userform

Les identifiants sont bien correct et quand je check la requête via l'onglet réseau de la console développeur les données sont bien envoyer dans l'onglet "charge utile"

Voici la version python de mon code qui elle fonctionne sans problème, mais ne me permet pas d'avoir un userform dynamique

`import re
import requests

# Identifiants de connexion
payload = {"user":"monUser","pass":"monPass"}

# Authentification O2Switch
requete = requests.post("urlDeConnectionAuServeur",payload)

# Sauvgarde du cookie
cookie = requete.cookies`

j'ai pas lu le rest emais si il te faut les cookies rajoute un "credentials: include" dans les options

JeanFistelar
2022-01-20 10:14:24

Le 20 janvier 2022 à 10:10:04 :

Le 20 janvier 2022 à 10:05:18 :

Le 20 janvier 2022 à 10:04:23 :

Le 20 janvier 2022 à 10:03:38 :

Le 20 janvier 2022 à 09:58:45 :
Je pense que c'est lié à ton payload.

Dans ton code python tu l'envoies via payload, les identifiants sont donc envoyés en text/plain

Dans ton code javascript, tu envoies ton payload en json, ce n'est donc pas du text/plain. Il ne faut pas utiliser la méthode stringify dans ton code javascript.

D'accord je vois ducoup y'a pas moyen de le faire en js ?

C'est la même chose que je t'ai dis, t'as juste à ne pas jsonify :(

Be non clé j'ai poster un deuxième code dans lequel je ne stringify pas et c'est pareil

Je pense qu'il faut mettre aussi {"Content-Type", "text/plain"} dans ton header

non cest du json envoyé en une string faut bien laisser comme ça

Iterer
2022-01-20 10:15:03

fetch ça se base sur les Promise commence par là déjà.

JeanFistelar
2022-01-20 10:15:16

Le 20 janvier 2022 à 10:09:50 :
Essaye un truc comme ça

const form = new FormData();
form.append("user", tonuser);
form.append("pass", tonpassword);
fetch("monurl",{
method: "POST",
body: form,
mode: "no-cors",
redirect: "follow",
})

cest bien gentil mais si son backend il veut recevoir un payload en json ca va l'envoyer chier

Infos
Gestion du forum

contact@geevey.com

API disponible. Utilisez le paramètre "api" en GET, peu importe le contenu, sur une page du site.

Notes

    ⚠️ Les archives de novembre sont désormais disponibles.
Non-assumage
    Personne n'a pas assumé de topic pour le moment.