URL кодировать переменную в AS3? - PullRequest
6 голосов
/ 15 августа 2010

Я получаю следующую ошибку при попытке передать переменные через URLRequestMethod.POST;

Ошибка: Ошибка # 2101: строка, переданная в URLVariables.decode (), должна быть строкой запроса в кодировке URL, содержащейпары имя / значение.

Есть ли метод для кодирования строки URL?

Ответы [ 4 ]

21 голосов
/ 15 августа 2010

Существуют escape () и unescape () как функции верхнего уровня ActionScript 3 для кодирования / декодирования URL.

7 голосов
/ 16 августа 2010

Решение этой проблемы: необходимо установить для URLLoaderDataFormat значение URLLoaderDataFormat.TEXT, а не URLLoaderDataFormat.VARIABLES., поскольку VARIABLES означает разные типы данных, а не несколько элементов в URLVariables.

6 голосов
/ 15 августа 2010

Это сообщение об ошибке обычно вызывается передачей недопустимой строки запроса в объект 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());

Трассировка, конечно, не нужна,это просто, чтобы вы могли видеть, что кодирование работало.

0 голосов
/ 23 августа 2010

Я сталкивался с этой проблемой много раз, и обычно это строка myLoader.dataFormat = URLLoaderDataFormat.VARIABLES, которую я пропустил. Попробуйте удалить эту строку, если она у вас есть:

request.method = URLRequestMethod.POST

и, наконец, убедитесь, что вы получаете ответ через переменную theStatus=okay, тогда это должно сработать.

...