0

在我的应用程序中,我试图显示来自 google.com 的一些数据。我的问题是我总是有这个错误:

Error #2048: Security sandbox violation: https://XXXXX.com/runtime.swf cannot load data from http://www.google.com/finance/company_news?q=null:OZG&output=rss.

google 的 crossdomain.xml 是这样的:

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
  <site-control permitted-cross-domain-policies="by-content-type" />
</cross-domain-policy>

我在我的 AS3 代码中这样调用页面:

var hdr:URLRequestHeader = new URLRequestHeader("Content-type", "text/x-cross-domain-policy");
var request:URLRequest = new URLRequest(feedURL);
request.requestHeaders.push(hdr);
//then load the request with an UrlLoader

你知道为什么 flash 会给我这个跨大敏安全错误吗?

4

2 回答 2

0

我实际上误解了crossdomain.xml文件的含义。基本上,谷歌的跨域策略文件不允许任何域。

我认为我唯一的解决方案是使用代理...

于 2012-11-21T04:49:32.640 回答
0

您可以使用 PHP 代理,但必须启用 cURL。例如:

$gogle = curl_init(); 
curl_setopt($gogle , CURLOPT_URL, $googleurl); 
curl_exec($gogle); 

如果您需要进一步的操作,请使用该CURLOPT_RETURNTRANSFER选项将内容作为字符串返回,而不是输出。

curl_setopt($ch, CURLOPT_RETURNTRANSFER , TRUE); 
$content = curl_exec($ch); 

CURLOPT_POSTFIELDS如果您需要传递 POST 参数,请使用(例如:“param=value&q=google”)

于 2012-11-21T19:12:33.797 回答