我正在尝试学习Google代码网站上的帐户身份验证API详细说明的ClientLogin界面。
我在Javascript中使用Firefox 3.5pre(Shiretoko)和XMLHttpRequest
对象来跟踪该过程。这是我所拥有的精简版本:
<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>
当我点击身份验证链接时,我得到的所有内容都是Bad Request
响应。检查请求标头,我看不到Content-Type
设置为application/x-www-form-urlencoded
。
我正在使用Firebug 1.5X来检查流量。
目前,我想要做的就是生成 Sample Request 部分中提到的请求,并获得 Sample Responses 部分中提到的响应。如果我到达那里,我想获得一些特定于帐户的数据,例如未读的Google阅读器供稿等。
答案 0 :(得分:1)
我怀疑你被Javascript的“同源”政策所困扰。它可以防止Javascript(包括XmlHttpRequest)从另一个域访问一个域。更多信息可从Mozilla获得。
有一些方法可以解决这个问题,但我不知道他们是否会使用Google的API。
答案 1 :(得分:-1)
那个'p'花了我两个小时的时间才找到,因为我坚持认为google给出的代码被严格复制并且没有出现任何错误
互联网上没有任何问题没有答案