En essayant de faire une extension à Safari qui s'authentifie avec l'API de http://myphotodiary.com. Et cela fonctionne bien, pour tous les mots de passe qui n'avez pas des caractères spéciaux comme:XMLHttpRequest avec des caractères spéciaux dans Safari Extension ne fonctionne pas
å, ä, ö et de l'espace
Je le code suivant actuellement:
var xmlHttp = new XMLHttpRequest();
var url = "https://api.myphotodiary.com/user_status.json?api_key=66217f993f25a8a05dd72970473aa2227450dcad";
var username = "iphone";
var password = "bdbiphone123";
var authy = Base64.encode(username+":"+password);
xmlHttp.open('GET', url, true);
xmlHttp.setRequestHeader("Authorization", "Basic " + authy);
xmlHttp.onreadystatechange = function(){
if (xmlHttp.readyState == 4){
var data;
eval("data="+xmlHttp.responseText);
console.log(data);
}
};
xmlHttp.send(null);
Cette code fonctionne très bien pour tous les mots de passe qui ne comprennent pas les caractères spéciaux, mais si je change les informations de connexion à
var username = "blpninja";
var password = "./ hejä";
il commence à échouer.
Ce code exact fonctionne dans Safari, mais pas quand je le mets dans une extension.
J'ai aussi essayé le xmlHttpRequest.open construit dans l'authentification
xmlHttp.open('GET', url, true, username, password);
avec le même résultat.
C'est ma tête de la page mondiale:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
je suis le « Impossible de charger la ressource: annulé » et ce sont les en-têtes envoie Safari:
Authorization:Basic YmxwbmluamE6Li8gaGVqw6Q=
Content-Type:text/xml; charset=utf-8
User-Agent:Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_4; sv-se) AppleWebKit/533.16 (KHTML, like Gecko)
Je viens de résoudre le problème par encodeURIComponent (mot de passe), puis en utilisant la construction en fonction auth dans xmlHttpRequest.open() THX! – Sebastian
Je vais vous envoyer un gâteau! :) – Sebastian
Je suis heureux d'avoir pu vous aider. Kladdkaka serait bien ;-) – KooiInc