2009-05-29 8 views
1

J'essaie d'apprendre l'interface ClientLogin détaillée sur les API d'authentification de compte sur le site Web du code de Google. J'utilise Firefox 3.5pre (Shiretoko) et XMLHttpRequest objet en Javascript pour suivre le processus. Voici une version dépouillée de ce que j'ai:Utilisation de l'interface ClientLogin de Google via XMLHttpRequest en Javascript

<html> 
<head> 
<title>Test</title> 
<script type="text/javascript"> 
    //<![CDATA[ 
function update() { 
    var auth_params = "accountType=HOSTED_OR_GOOGLE&Email=val" 
        +"&passwd=val&service=cl&source=MMA-Learning"; 
    var request = new XMLHttpRequest(); 

    request.open('POST', 'https://www.google.com/accounts/ClientLogin', true); 

    request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
    request.setRequestHeader("Content-Length", auth_params.length); 
    request.setRequestHeader("Connection", "close"); 

    request.onreadystatechange = function() { 
    if (this.readyState == 4 && this.status == 200) { 
     alert ("Request done"); 
    } 
    }; 

    try { 
    request.send(auth_params); 
    } catch (e) { 
    alert ("Send Exception:\n"+e); 
    } 
} 
    //]]> 
</script> 
</head> 
<body> 
    <a href="javascript:update()">Authenticate</a> 
</body> 
</html> 

Lorsque je clique sur le lien Authentifier, tout ce que je reviens est une réponse Bad Request. En examinant les en-têtes de la requête, je ne vois pas Content-Type sur application/x-www-form-urlencoded. J'utilise Firebug 1.5X pour examiner le trafic. J'utilise Firefox 1.5X.

Pour l'instant, tout ce que je veux faire est de générer la demande mentionnée dans la section Demande d'échantillon et obtenir une réponse mentionnée dans les Exemples de réponses section. Si je reçois là-bas, je veux obtenir des données spécifiques comme compte, Google Reader non lu nourrit etc

Répondre

-1

le « p » « passwd » est un petit « p » au lieu d'un « P »

vous avez probablement compris cela. Lorsque vous postez et vous trouvez la réponse, il est toujours poli si vous postez la réponse aussi bien. Cela aide les gens à l'avenir qui se penchera sur votre post pour information

que p m'a fallu deux heures pour trouver parce que je persummed que le google de code a donné a été copié correctely et il n'y avait pas d'erreur de cas

aucun point dans Internet étant plein de questions sans réponses

1

Je soupçonne que vous avez été mordu par la politique de "même origine" de Javascript. Il empêche Javascript, y compris XmlHttpRequest, d'accéder à un domaine d'un autre. Plus d'informations sont disponibles à partir de Mozilla.

Il y a des hacks pour contourner cela, mais je ne sais pas s'ils fonctionneront avec l'API de Google.

Questions connexes