Я получаю следующую ошибку при попытке передать переменные через URLRequestMethod.POST;
Ошибка: ошибка № 2101: строка, переданная в URLVariables.decode (), должна быть строкой запроса в кодировке URL, содержащей пары имя / значение.
Есть ли метод для строкового кодирования URL?
Решение этой проблемы:
Вы должны установить для URLLoaderDataFormat значение URLLoaderDataFormat.TEXT, а не URLLoaderDataFormat.VARIABLES.
Поскольку ПЕРЕМЕННЫЕ
означают разные типы данных, а не несколько элементов в URLVariables
.
Существуют escape () и unescape () как функции верхнего уровня ActionScript 3 для кодирования / декодирования URL.
Это сообщение об ошибке обычно вызывается передачей недопустимой строки запроса объекту URLVariables. Но в большинстве случаев вам не нужно передавать строку запроса. Вы можете просто добавить пары к объекту как обычные свойства и позволить ему выполнять кодирование и экранирование (что и предназначено для этого класса).
var vars:URLVariables = new URLVariables();
vars.param1 = "Text to be escaped. Works for non ascii: ñ";
vars.param2 = "http://www.google.com/?q=something&test=1234";
trace(vars.toString());
Трассировка, конечно, не нужна, просто чтобы вы могли видеть, что кодировка сработала.
Я сталкивался с этой проблемой много раз, и обычно это строка myLoader.dataFormat = URLLoaderDataFormat.VARIABLES
, которую я пропустил. Попробуйте удалить эту строку, если она у вас есть:
request.method = URLRequestMethod.POST
и, наконец, убедитесь, что вы получаете ответ через переменную theStatus = okay
, тогда это должно помочь.