PDA

Просмотр полной версии : Отправка POST-ом с переходом


Vlad84
19.01.2015, 19:45
Люди, как мне постом отправить переменные и одновременно перейти по ссылке? Именно одновременно отправка с переходом.
Обычный navigateToURL(); не перекидывает на сайт и, тем более, ничего не отправляет.

var loader:URLLoader = new URLLoader;
var urlreq:URLRequest = new URLRequest(server);
var urlvars:URLVariables = new URLVariables;
var header:URLRequestHeader = new URLRequestHeader("Content-type", "application/octet-stream");

loader.dataFormat = URLLoaderDataFormat.VARIABLES;
urlreq.requestHeaders.push(header);
urlreq.method = URLRequestMethod.POST;

urlvars.id = "id";
urlvars.image = "img";

urlreq.data = urlvars;

try {
navigateToURL(urlreq);
} catch (e:*) {
trace(e)
}

Zebestov
19.01.2015, 19:57
Вызов navigateToURL() без параметра window открывает новое окно, которое, возможно, заблокировалось браузером.

И вот еще:
Выдает:
Error — Если вызов метода не выполняется в ответ на действие пользователя, такое как событие мыши или нажатие клавиши. Это требование применимо только к содержимому в Flash Player и к содержимому Adobe AIR, находящемуся не в изолированной программной среде приложения.

Vlad84
20.01.2015, 12:03
По Error понял, поправил код.

А вот navigateToURL() даже если ему передать параметр _blank, ничего не открывает. На форуме девов хрома писали, что переход можно сделать через
ExternalInterface("window.open");
Но это для меня не вариант, он не везде работает.

Котяра
20.01.2015, 13:52
navigateToURL должен быть прописан в хэндлере клика.

Vlad84
21.01.2015, 14:50
navigateToURL должен быть прописан в хэндлере клика.
Я обернул его в функцию, которую приаттачил к кнопке.
Внизу архив с исходником. Странно, что переменные передаются не постом, а гетом :(

callme
29.01.2015, 10:19
Проверьте, может в этом проблема

Если операция POST является междоменной (назначением операции POST не является сервер, на котором содержится SWF-файл, отправляющий запрос POST), целевой сервер должен предоставить файл политик URL, в котором разрешен междоменный доступ.

http://help.adobe.com/ru_RU/FlashPlatform/reference/actionscript/3/flash/net/package.html#navigateToURL%28%29