![]() |
|
||||||||||
|
|||||
|
Делаю простейший пример взаимодействия AS3 и PHP
AS3: var url = "http://test1.ru/sample2.php";
var vars:URLVariables = new URLVariables();
var sender:URLVariables = new URLVariables();
sender.id= "GET";
var request:URLRequest = new URLRequest(egosetURL);
request.data = sender;
request.method = URLRequestMethod.GET;
var loader:URLLoader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.VARIABLES;
loader.addEventListener(Event.COMPLETE, varsHandleComplete);
loader.addEventListener(IOErrorEvent.IO_ERROR, varsHandleIOError);
loader.addEventListener(HTTPStatusEvent.HTTP_STATUS, varsHandleHttpStatus);
loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, varsHandleSecurityError);
try {loader.load(request);}catch (e:Error) {trace("error!")}
sample2.php <?php $returnVars = array(); $returnVars['username'] = "John Doe"; $returnVars['email'] = "johndoe@hotmail.com"; $returnString = http_build_query($returnVars); echo $returnString; ?> Все работает. Переношу все на живой сервер (IIS) - флеш выдает такую ошибку. 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() помогите плз советом! забыл добавить - аналогичный пример на AS2 с LoadVars отлично воспринимался этим серваком. так что есть мнение, что он все-таки возвращает переменные. Последний раз редактировалось Oreanor; 20.08.2008 в 18:40. |
|
|||||
|
Регистрация: Sep 2008
Адрес: Belgorod, Russia
Сообщений: 4
|
ответ никто не даст? столкнулся с тем же
каким должен быть формат возвращаемых данных?&var=val&var2=val2, так же? |
|
|||||
|
я помогу тебе!
режь нафиг первый амперсанд. |
|
|||||
|
Так я не понял вопрос снят или нет?
на всякий случай var txt:TextField = new TextField();
txt.text = "Здесь будут переменные";
txt.autoSize = TextFieldAutoSize.LEFT;
txt.scaleX = txt.scaleY = 3;
addChild(txt);//добавить на рабочее поле
var url:String = "http://test1.ru/sample2.php";
var request:URLRequest = new URLRequest(url);
//var variables:URLVariables = new URLVariables();
// variables.exampleSessionId = new Date().getTime();
// variables.user_name = "";
// variables.user_message = "";
//request.data = variables;
var loader:URLLoader = new URLLoader();
configureListeners(loader);
try {
loader.load(request);
} catch (error:Error) {
trace("Unable to load requested document.");
}
function configureListeners(dispatcher:IEventDispatcher):void {
dispatcher.addEventListener(Event.COMPLETE, completeHandler);
}
function completeHandler(event:Event):void {
var loader:URLLoader = URLLoader(event.target);
trace("completeHandler: " + loader.data);
var vars:URLVariables = new URLVariables(loader.data);
txt.text=vars.username+'\n'+vars.email;
}
На самом деле пример есть (простейший) http://www.flasher.ru/forum/showthread.php?t=113083 |
|
|||||
|
Регистрация: Jan 2008
Сообщений: 669
|
Цитата:
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Вообще говоря, первый амперсанд не является стандартом для url-encoded строки.
|
|
|||||
|
Цитата:
уже не помню, где я в результате об этом прочитал, но нервов потратил вагон, пока разобрался, что дело именно в этом. AS3 уж больно беспощаден к врагам рейха. |
|
|||||
|
стервочка (я мужик)
|
ну то, что есть что-то работающие в упрёк кривизне реализации сторонних разработок, это ещё не значит, что именно так надо.
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Во втором амперсанд в начале тоже фиг знает откуда взяли, его там не было и он не нужен был никогда.
|
|
|||||
|
имхо все же без него во втором у меня не работало. я бы тогда один вариант оставил, а так пришлось дополнительную переменную в запрос ввести, чтобы узнавать, какой версии скрипт обращается
|
![]() |
![]() |
Часовой пояс GMT +4, время: 11:01. |
|
|
« Предыдущая тема | Следующая тема » |
|
|