Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   API приложений и сред (http://www.flasher.ru/forum/forumdisplay.php?f=61)
-   -   URLLoader не происходит событие Event.COMPLETE (http://www.flasher.ru/forum/showthread.php?t=146176)

alexus_28 30.10.2010 19:45

URLLoader не происходит событие Event.COMPLETE
 
Всем привет, существует проблема
При отправке запроса GET к стороннему серверу, передаю параметры с русскими буквами и использую функцию encodeURI. НЕ срабатывает событие Event.COMPLETE.

Код работает, в на локальном компе (и с русскими и без них).
При запуске из вконтакте работает, если в строке запроса отсутствуют русские буквы. Как только в строке запроса появляются русские буквы, то перестает работать (хотя перед отправкой запроса кодирую функцией encodeURI).

Код ниже:
Код AS3:

public function requestServer(url: String, onSuccess: Function = null, onError: Function = null)
                {
                        var request:URLRequest = new URLRequest();
                        request.url = encodeURI(url + _authUrlPart + getUniqueUrlPart());
                        request.method = URLRequestMethod.GET;
                        loader = new URLLoader();
 
                        loader.addEventListener(Event.COMPLETE, function(e:Event):void{
                        var loader:URLLoader = URLLoader(e.target);
                        trace(loader.data);
 
                        var data: Object = JSON.decode(loader.data);
 
                        if (data.Success)
                        {
                                if (onSuccess)
                                {
                                onSuccess(data.Body);
                                }
                        }
                        else
                        {
                                if (onError)
                                {
                                        onError(data);
                                }
                                else
                                {
                                        onErrorDefault(data);
                                }
                        }
                        });
 
                        try
                        {
                                loader.load(request);
                        }
                        catch (error:Error)
                        {
                                trace("Unable to load URL");
                        }
                }

Пример url - запроса до применения функции encodeURI:

Код:

http:// ... /Параметр1/Параметр2/?u=1&a=1&t=1
Пример url - запроса послеприменения функции encodeURI:

Код:

http:// ... /%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%801/%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%802/?u=1&a=1&t=1
Помогите плиз! Заранее очень благодарен:)

Добавлено через 1 час 49 минут
Посмотрел, что срабатывает событие securityError (#2048: Нарушение изолированной среды), и оно срабатывает только при попытке отправить запрос с русскими буквами(перекодированными с помощью функции encodeURI).
Почему так возникает?

Добавлено через 19 часов 48 минут
И еще, это событие срабатывает только при использовании FireFox? в остальных браузерах работает!
Помогите пожалуйста, уже замучался!

Rembrant 31.10.2010 19:02

попробуйте кодировать в escapeMultiByte() мб?

alexus_28 01.11.2010 00:25

не помогло к сожалению, буду дальше разбираться, но все равно спасибо.


Часовой пояс GMT +4, время: 17:54.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.