我正在尝试使用加载程序和VARIABLES数据格式从php脚本中获取一些数据。这是我的代码:
myUrlResults = new URLRequest("http://[...]/getData.php");
myUrlResults.method = URLRequestMethod.GET;
myResultsLoader = new URLLoader();
myResultsLoader.dataFormat = URLLoaderDataFormat.VARIABLES;
myResultsLoader.addEventListener(Event.COMPLETE, sendEventCompleteHandler);
myResultsLoader.addEventListener(IOErrorEvent.IO_ERROR, sendEventErrorHandler);
myResultsLoader.load(myUrlResults);
和
function sendEventCompleteHandler(e:Event) {
trace('Ok.');
}
function sendEventErrorHandler(e:IOErrorEvent) {
trace('Error occured:' + e);
}
如您所知,如果php文件格式不正确,Flash会给您一个令人讨厌的错误。
但我的.php文件返回类似var1=5&var2=10
的内容,一切都很好。但是,有时,服务器有问题并返回"Too many connections."
这是Flash不喜欢的东西,因为它不是变量 - 值对,我得到这样的错误:
Error: Error #2101: The String passed to URLVariables.decode() must be a URL-encoded query string containing name/value pairs.
at Error$/throwError()
at flash.net::URLVariables/decode()
at flash.net::URLVariables$iinit()
at flash.net::URLLoader/flash.net:URLLoader::onComplete()
如何捕捉此错误?
答案 0 :(得分:0)
尝试设置
myResultsLoader.dataFormat = URLLoaderDataFormat.TEXT;
并在完整的处理程序中验证结果后自己获取变量。
您可以使用URLVariable.decode()并尝试/捕获它。