0

我正在尝试从https://www.google.com/accounts/OAuthGetRequestToken获取带有 flex 的 RequestToken 。它在 Flash Builder 中运行良好,但在 localhost 中却不行。我认为是 crossdomain.xml 的问题,所以我尝试在https://www.google.com/accounts/crossdomain.xmlhttps://www.google.com/crossdomain.xml中找到跨域文件。但是,我找不到它。

我的问题是在哪里可以找到 OAuthGetRequestToken 的 crossdomain.xml。

请指教。谢谢。

更新:

var loader:URLLoader = new URLLoader();
var request:OAuthRequest = new OAuthRequest("GET", requestTokenUrl, oauthParams, consumer, null);
var urlrequest:URLRequest = new URLRequest(request.buildRequest(signatureMethod));
loader.addEventListener(Event.COMPLETE, requestTokenHandler);
loader.load( urlrequest );
4

3 回答 3

1

问题可能是您需要专门允许计算机上包含您的 swf 的文件夹访问外部互联网。在此处转到全局安全设置的闪存设置管理器:

http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04.html#117502

并将 HD 上带有 swf 的文件夹添加到“始终信任这些位置的文件”列表中。为方便起见,您可以添加整个 HD,但您可能会面临一些安全风险。

于 2011-03-29T06:23:39.520 回答
1

谷歌是否说他们有该服务的跨域?我的猜测是他们没有。如果是这种情况,您将永远无法直接从 SWF 访问该服务。由于闪存是在客户端计算机上执行的,因此需要跨域策略来防止未经授权的网络代码在防火墙后面执行。

标准做法是使用适当的跨域策略设置您自己的服务器,并使用它来代理对任何外部服务的调用。无论如何,从可扩展性的角度来看,这都是一个好主意。

于 2011-03-29T15:57:01.907 回答
0

最后,我使用 AuthSub 进行 Flex 授权。我在以下问题请求中提到了这一点: http ://code.google.com/p/gdata-issues/issues/detail?id=1855#makechanges

如果有人有兴趣看到这种情况发生,请在上面的功能请求中加注星标。

于 2011-04-05T16:16:04.503 回答