Security Sandbox Violation with Youtube API

2019-02-26 02:14发布

问题:

I'm getting a very annoying run time error message, which crashes my flash application when it runs in the browser. The error pertains to a 'Security Sandbox Violation' when I attempt to access Youtube's Gdata api. The exact error message reads:

Error: Request for resource at https://gdata.youtube.com/feeds/api/videos?
key=As##2PVR2#lPj#0bVaw_Tvjx1MI6qeAI1gORxErVYDzu2zZy4D18bf8T6pHxsPgIOhs3_44Te
YTVlYLx49goUPbv00udousA&q=The-Muppets-official-trailer&alt=json&max-results=1 
by requestor from http://###.com/cws/f/VV.swf is denied due 
to lack of policy file permissions.
*** Security Sandbox Violation ***

When I run the SWF locally, everything works fine.

Any ideas?

Thanks.

Edit: I've just added these lines, but still no luck.

Security.loadPolicyFile("http://www.mydomain.com/crossdomain.xml");
Security.loadPolicyFile("https://gdata.youtube.com/crossdomain.xml");
Security.allowDomain("https://gdata.youtube.com");
Security.allowDomain("gdata.youtube.com");

回答1:

You need to specify a crossdomain.xml policy-file according to Adobe Flash security rules.

1) Place the crossdomain.xml at the root directory of your website

2) Example content (not recommended)

    <?xml version="1.0"?>
    <cross-domain-policy>
       <allow-access-from domain="*" />
    </cross-domain-policy>

3) Load the policy-file into your project (AS3):

    System.security.loadPolicyFile("http://www.DOMAIN.net/crossdomain.xml");

Read the reference document for further information.