Page 1 sur 1

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

Publié : 12 mars 2020, 17:36
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 ?

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

Publié : 12 mars 2020, 20:20
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 ?

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

Publié : 12 mars 2020, 20:59
par pepersan
Bonsoir

est ce que ça peut aider :?: : https://developer.mozilla.org/fr/docs/W ... emiers_pas

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

Publié : 12 mars 2020, 22:27
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...