我正在尝试学习 Google 代码网站上帐户身份验证 API 中详细介绍的 ClientLogin 接口。
我正在使用 Firefox 3.5pre (Shiretoko) 和XMLHttpRequestJavascript 中的对象来跟踪该过程。这是我所拥有的精简版:
<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>
当我单击Authenticate链接时,我得到的只是Bad Request响应。检查请求标头,我没有看到Content-Type设置为application/x-www-form-urlencoded.
我正在使用 Firebug 1.5X 来检查流量。
现在,我要做的就是生成示例请求部分中提到的请求并获得示例响应部分中提到的响应。如果我到达那里,我想获取一些特定于帐户的数据,例如未读的 Google Reader 提要等。