AJAX CrossDomain authentification bloqué sans aucun messages d'erreur.

Vos requêtes concernant Mozilla Firefox, le navigateur Gecko alternatif, ne trouvèrent point de réponses lorsque vous cherchâtes ? Toute l'équipe Geckozone est prête à vous aider.

Modérateurs : nico@nc, Mori, jpj, myahoo

migdal
Arias
Messages : 3
Inscription : 12 mars 2020, 17:18

AJAX CrossDomain authentification bloqué sans aucun messages d'erreur.

Message par migdal »

Bonjour,

J'ai actuellement un code très simple en JQuery dont le but est de récupérer une ressource d'un autre domaine que la page courante:

Code : Tout sélectionner

$.get({username: "...", password: "....", url:"https://...", crossDomain: true});
Le problème est que Firefox bloque cette requête sans donner aucune raison à ce blocage (rien dans la console de la page Web ou du navigateur).
Dans l'onglet "Réseau", je vois que "Bloqué" est écrit dans la colonne "Transfert".
Si je clique sur "modifier et renvoyer", puis sur "envoyer", la requête n'est pas bloquée.


J'ai testé sur un profil vierge, FF 74.0 (Mozilla Firefox for Ubuntu canonical - 1.0), sans WebExtensions.
J'ai tenté de rajouter "withCredentials: true", sans plus de succès.


J'ai aussi testé directement avec XMLHttpRequest:

Code : Tout sélectionner

var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
       console.log('ok');
    }
  };
  xhttp.open("GET", "https://....:....@.....", true);
xhttp.crossDomain = true;
xhttp.withCredentials = true;
  xhttp.send();

Auriez-vous une idée de la raison pour laquelle ma requête AJAX est bloquée ?
migdal
Arias
Messages : 3
Inscription : 12 mars 2020, 17:18

Re: AJAX CrossDomain authentification bloqué sans aucun messages d'erreur.

Message par migdal »

Pour une raison que j'ignore, Firefox semble bloquer les requêtes AJAX contenant des identifiants dans l'URL.

Il faut alors passer par une en-tête "Authorization" à la place. À noter que le serveur web doit être configuré pour ne pas demander une authentification lors de la pré-requête. Cf
https://developer.mozilla.org/fr/docs/G ... rification
https://stackoverflow.com/questions/481 ... -on-apache


Est-ce que vous avez une idée de ce comportement bizarre, de la part de Firefox ?
Avatar de l’utilisateur
pepersan
Tyrannosaurus Rex
Messages : 3458
Inscription : 31 janv. 2017, 10:57

Re: AJAX CrossDomain authentification bloqué sans aucun messages d'erreur.

Message par pepersan »

Bonsoir

est ce que ça peut aider :?: : https://developer.mozilla.org/fr/docs/W ... emiers_pas
Firefox 140 Linux Mint 21.3 Virginia base: Ubuntu 22.04 jammy
Pour mettre en [Résolu] éditer le premier message du post, en cliquant sur le crayon, modifier le titre, en y ajoutant [Résolu]
migdal
Arias
Messages : 3
Inscription : 12 mars 2020, 17:18

Re: AJAX CrossDomain authentification bloqué sans aucun messages d'erreur.

Message par migdal »

Pas vraiment, mais merci quand même.


Je pense que j'ai eu la solution en utilisant fetch:
TypeError: Window.fetch: "https://..:...@...." is an url with embedded credentials.

Firefox a décidé de ne plus supporter les identifiants dans les URL pour les requêtes AJAX/Fetch.
Firefox aurait quand même pu donner la même erreur lors d'une requête AJAX "normale"...


D'ailleurs fetch ne semble pas me faire de pré-requête donc je vais peut-être le privilégier à la place de JQuery.



CORS est vraiment plus enquiquinant qu'autre chose... Déjà que je suis obligé de passer par du PHP juste pour récupérer des pages que je ne peux pas récupérer directement en JS à cause de CORS...
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 4 invités