Java 如何在动作脚本中将二进制内容发送到servlet
我在一个文件中有一个动作脚本函数,它将一个pdf文件作为二进制内容发送到一个servlet,如下所示Java 如何在动作脚本中将二进制内容发送到servlet,java,actionscript-3,flash,actionscript,Java,Actionscript 3,Flash,Actionscript,我在一个文件中有一个动作脚本函数,它将一个pdf文件作为二进制内容发送到一个servlet,如下所示 private function savePDF(pdfBinary:ByteArray, urlString:String):void{ try{ Alert.show("in savePDF urlString" +urlString); //result comes back as binary, c
private function savePDF(pdfBinary:ByteArray, urlString:String):void{
try{
Alert.show("in savePDF urlString" +urlString);
//result comes back as binary, create a new URL request and pass it back to the server
var header:URLRequestHeader = new URLRequestHeader("Content-type", "application/octet-stream");
var sendRequest:URLRequest = new URLRequest(urlString);
sendRequest.requestHeaders.push(header);
sendRequest.method = URLRequestMethod.POST;
sendRequest.data = pdfBinary;
Alert.show("in savePDF calling sendToURL");
sendToURL(sendRequest);
}catch(error:*){
Alert.show("in savePDF err" +error);
trace(error);
}
}
这段代码在FlashPlayer版本(如10、11、13)中运行良好
但在14.0.0.126或更高版本的FlashPlayer中失败
我得到以下错误
SecurityError: Error #3769: Security sandbox violation: Only simple headers can be used with navigateToUrl() or sendToUrl().
有关如何解决此问题的任何建议?您可以尝试使用而不是sendToURL()
这是由Flash Player最新版本的安全更新引起的已知问题;见和@CyanAngel的回答将允许您发送请求,而不会被此安全检查阻止。在最新版本的Flash Player中,“使用FlashVars变量将数据传递到swf文件”是否存在任何问题?我得到的所有变量都是空的,这不是我所知道的。但是,如果您不确定如何传入变量,则可能很难正确处理。如果使用URLLoader error#2044,则会出现以下错误:未处理的securityError:。text=错误#2048:安全沙箱冲突:您可能需要设置跨域策略,请参阅:
Alert.show("in savePDF urlString" +urlString);
var header:URLRequestHeader = new URLRequestHeader("Content-type", "application/octet-stream");
var sendRequest:URLRequest = new URLRequest(urlString);
sendRequest.requestHeaders.push(header);
sendRequest.method = URLRequestMethod.POST;
sendRequest.data = pdfBinary;
Alert.show("in savePDF calling URLLoader");
var loader:URLLoader = new URLLoader();
loader.load(sendRequest);