2011-06-27 18 views
1

我正在使用这个jQuery AJAX调用谷歌的ClientLogin。jQuery ajax调用接收文本/ plain

$.ajax({ url:"https://www.google.com/accounts/ClientLogin", 
     type:"POST", 
     data:{'Email': 'myusername', 
       'Passwd': 'mypassword', 
       'service': 'fusiontables', 
       'accountType': 'HOSTED_OR_GOOGLE'}, 
     dataType:"jsonp", 
     success:function(data){ console.log("Hurrah!"); }, 
     error:function(e){ console.log(e); } 
}); 

问题是,ClientLogin不返回JSON,而是文本/平原。所以我得到以下错误:

SID=blahblah 
LSID=blahblah 
Auth=blahblah 

ClientLogin:3未捕获的SyntaxError:意外的标记非法。

如何解析此响应并获取Auth =值?

+0

您是否尝试将?alt = json添加到URL或将其作为数据传递? –

+0

你在尝试什么浏览器?出于安全原因,一些现代浏览器不允许对第三方应用程序进行AJAX调用。 – BlueBird

+0

@Antonio我刚刚做到了。似乎没有工作。 @Muneer谷歌浏览器。我知道我可以修改一个manifestife文件,但这是一个html文件中的脚本。 – Ram

回答

2

JSON-P在JavaScript封装数据,以绕过same origin policy

不能读取与客户端的JavaScript第三方网站的任意数据。

如果需要,可以通过自己的服务器代理数据。

+0

我试过了。但后来我得到一个XMLHttpRequest无法加载https://www.google.com/accounts/ClientLogin。 Access-Control-Allow-Origin不允许Origin null。 – Ram

+0

啊,我没有注意到。更新了答案。 – Quentin

1

您可以使用专用于此用途的PHP代理。使用您的域对您的PHP代理进行Ajax调用。然后使用php curl函数从Google进行身份验证。