Открытие веб-страницы из флэш-памяти (AS3) с отправкой POST-переменных - PullRequest
2 голосов
/ 11 декабря 2011

Я хочу открыть веб-страницу на той же вкладке, когда пользователь нажимает видеоклип.Я использую этот метод:

var url:String = "http://www.google.com";
var request:URLRequest = new URLRequest(url);
try {
  navigateToURL(request);
} catch (e:Error) {
  trace("Error occurred!");
}

Но я понятия не имею, как открыть его, отправив POST-переменные.Это возможно?

Ответы [ 3 ]

10 голосов
/ 11 декабря 2011

Да, это возможно, указав POST в качестве метода в URLRequest и используя flash.net.URLVariables для переменных. Это пример из документации:

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/URLRequest.html

package {
    import flash.display.Sprite;
    import flash.net.navigateToURL;
    import flash.net.URLRequest;
    import flash.net.URLRequestMethod;
    import flash.net.URLVariables;

    public class URLRequest_method extends Sprite {

        public function URLRequest_method() {
            var url:String = "http://www.[yourDomain].com/application.jsp";
            var request:URLRequest = new URLRequest(url);

            var variables:URLVariables = new URLVariables();
            variables.exampleSessionId = new Date().getTime();
            variables.exampleUserLabel = "guest";
            request.data = variables;
            request.method = URLRequestMethod.POST;

            navigateToURL(request);
        }
    }
}
1 голос
/ 28 января 2012

Относительно "подвопроса" выше:

по какой-то причине переменные были отправлены с использованием GET вместо POST, любой Идея

Это сообщение AS3 POST-запрос, отправляемый как GET , может помочь, если вы наткнетесь на этот пост, как я. Основная идея такова: не позволяйте request.data становиться пустым / нулевым. Просто добавьте что-нибудь «фиктивное» или «ненавязчивое» (с точки зрения сервера), например request.data = "\ r \ n" ; это должно предотвратить перезапись во время выполнения вашего запроса «POST» на «GET». Это сработало для меня (благодаря моему серверному приложению. Оно было достаточно надежным, чтобы хорошо обрабатывать, какие строки запросов, начинающиеся с пустого параметра, имеют пустой ключ и пустое значение).

0 голосов
/ 28 мая 2013

Если во Flash Player запущенная форма не имеет тела, Flash Player автоматически использует операцию GET, даже если для метода задано значение URLRequestMethod.POST. По этой причине рекомендуется всегда включать «фиктивное» тело, чтобы убедиться, что используется правильный метод.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...