Hello,
I'm developing a Flash widget that uses the eBay Trading API. I
managed to get my Flash widget to work locally, but as soon as I try
to run the swf from a website, I'm getting a security exception:
[SecurityErrorEvent type="securityError" bubbles=false
cancelable=false eventPhase=2 text="Error #2048"]
This exception occurs whenever I try to send a request to eBay using
URLLoader.load()
I'm already loading the crossdomain.xml file using:
Security.loadPolicyFile("
https://api.ebay.com/crossdomain.xml");
Please have a look at the simple test case attached. If I run the
widget locally, I always get the "SUCCESS" message, however if I run
it from a website, I get the "SECURITY ERROR" message.
Any idea what I might be doing wrong?
Thanks,
Laurent
---------------------------
package laudev {
import flash.events.*;
import flash.net.*;
import flash.system.Security;
public class Main extends MovieClip {
private function test_complete(iEvent) {
this.logTextField.text = "SUCCESS";
}
private function test_ioError(iEvent) {
this.logTextField.text = "IO ERROR";
}
private function test_securityError(iEvent) {
this.logTextField.text = "SECURITY ERROR";
}
public function Main() {
Security.loadPolicyFile("
https://api.ebay.com/
crossdomain.xml");
var xml = <GeteBayOfficialTimeRequest
xmlns="urn:ebay:apis:eBLBaseComponents">
<RequesterCredentials>
<eBayAuthToken>AgAAAA**AQAAAA**aAAAAA**S6a4Rw**nY+sHZ2PrBmdj6wVnY
+sEZ2PrA2dj6wFk4CpAZaLow6dj6x9nY
+seQ**Wd4AAA**AAMAAA**ITk9rZ8yVFi71W9PQkaF
+g2CF5pP7ZHA0J0olhCqiqTO6YuhgaS0EPYq0TAStSYCPbnR/
k6y2XySiVarz0FIR4xX9kOSgZV6KgQUUlcnynhS2vwwLtIyc0gMs1ANdaKm7ij2hR3cB3UyKAgASFnkOcd5KEQHbhVWPqYMd3prkJYz/
ijfv1I0FuJKsbC38VJW0ZyTuUhiVSpPypx5vCeCzvRJrx0Yj40oCeBPX1euWD5FBF1Wac1mSewYw3hW9qg6NXLQz7q
+mfDdd0IRjVanyzS8d7CSdXrEE0AupiwM0wPnt7EJ/PxVlpBusvM6sP
+ngMGYEsz9gv83bwe2p0/acCPkIoj7xHqlQe8KnOIJNCdwO6cYtrXNZVAhsPlWrVkt/
7+Ws8QnwJT/SVTwNJi3HFN11sI2gbKa0a1uWsRTwaCghfHRiXGES
+r2rssKquFz7PmRMFBVqoW8PxsbYMP655bchnkoQMkW8aeSVDNhWyNBP4cq8Dd1M8yRRm3jwlKok/
mBsmJCCLUF7FifMbMh7KlBchYQLh/RMAkdaXvyzTG5Tr76Qk9S
+q4uc0KU6+kvwEoii1uWwD2V3lVLKonxhUyiGT1IxsCJbODPjqDPvHnd1qJnOvKyAsgjuh5GsQqX9hKEAq5WqVxyc7uHGA
+JqmikFqnwmzj/
9k1iMjxJFL2nFslMBvThSvLA6HfT2uXQRavKihpwpTD2JkLbzC7HeMSN1yaDmGnMbPXpRyqQxLteKFWFx2Cxy8waR5f8Chy3</
eBayAuthToken>
</RequesterCredentials>
<DetailLevel>ReturnAll</DetailLevel>
<ErrorLanguage>en_US</ErrorLanguage>
<Version>459</Version>
</GeteBayOfficialTimeRequest>
var loader = new URLLoader();
loader.addEventListener(Event.COMPLETE, this.test_complete);
loader.addEventListener(IOErrorEvent.IO_ERROR,
this.test_ioError);
loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR,
this.test_securityError);
var urlRequest = new URLRequest("
https://api.ebay.com/ws/
api.dll");
urlRequest.requestHeaders = [
new URLRequestHeader("X-EBAY-API-COMPATIBILITY-LEVEL", "459"),
new URLRequestHeader("X-EBAY-API-DEV-NAME",
"4f22fc6d-994e-4fda-9d75-e569c0c64232"),
new URLRequestHeader("X-EBAY-API-APP-NAME",
"LaurentW-3bd3-4c82-beb6-303ab392bcb9"),
new URLRequestHeader("X-EBAY-API-CERT-NAME",
"87eb1c11-415e-443e-a7f8-30c21f3f5058"),
new URLRequestHeader("X-EBAY-API-SITEID", "0"),
new URLRequestHeader("X-EBAY-API-CALL-NAME",
"GeteBayOfficialTime"),
new URLRequestHeader('Content-Type', 'test/xml')
]
urlRequest.data = '<?xml version="1.0" encoding="utf-8"?>' +
xml.toXMLString();
urlRequest.method = URLRequestMethod.POST;
loader.load(urlRequest);
}
}
}