Freebox Player (Revolution / V6)

  • État Nouveau
  • Type de tâche Anomalie
  • Catégorie APIs
  • Assignée à Personne
  • Système d'exploitation Tous
  • Sévérité Basse
  • Priorité Normale
  • Basée sur la version 1.3.6
  • Due pour la version Non décidé
  • Date d'échéance Non décidé
  • Votes 0
  • Privée Non
Concerne le projet: Freebox Player (Revolution / V6)
Ouverte par Eric Blanquer (iop) - 02/08/2019

FS#27992 - API HTTP : XMLHttpRequest & header Access-Control-Allow-Origin manquant

Bonjour,

Je développe la télécommande virtuelle Freebox sur Chrome & Firefox : https://blanquer.org/freebox

avec Chrome je n’ai pas de souci de CORS, il y a une demande de permissions pour ça, mais pas avec Firefox,

pour accéder à l’API HTTP de la Freebox j’utilise ce bout de code qui retourne “0” lorsque la demande n’est pas authentifié à la place de “403” :

   var xhr = new XMLHttpRequest();
   xhr.open('GET', 'http://freebox-player.home/pub/remote_control?code=' + code + '&key=' + key + '&a=' + Math.random(), true);
   xhr.setRequestHeader('Access-Control-Allow-Origin', '*');
   xhr.onreadystatechange = function() {
       if (xhr.readyState == 4) {
           console.log('xhr.status ' + xhr.status);
       }
   };
   xhr.send();

le fait de rajouter le header “Access-Control-Allow-Origin” permet d’envoyer une requête OPTIONS avant le GET pour savoir si on est autorisé à faire du CORS,

mais la Freebox n’en tient pas compte et répond 403.

Serait-il possible prendre en compte les requêtes de type OPTIONS avec l’API HTTP de la Freebox ?

Merci.

Eric Blanquer

Cette tache ne dépend pas d'autre tache

16/08/2019: Une fermeture de tâche a été demandée Raison de cette demande: j'ai crée une nouvelle tache dans la section Freebox Delta : https://dev.freebox.fr/bugs/task/28056
Eric Blanquer (iop)
Friday 2 August, 2019 18:20:59

l'URL utilisée est celle de la Freebox Delta, qui a le même problème,

pour la Freebox Révolution l'URL est : 'https://hd1.freebox.fr/pub/remote_control?code=' + code + '&key=' + key + '&a=' + Math.random()' ;)

Chargement...