jquery param () не кодирует параметр должным образом, который включает "&" - PullRequest
1 голос
/ 15 марта 2011

Мое приложение основано на запросе / ответе Ajax. Я создаю объект всех параметров и создаю строку запроса, используя метод jquery param (). он работает нормально, но когда какой-то параметр содержит «&», он не кодирует это должным образом, и в этом случае сервер возвращает ошибку. Может кто-нибудь сказать мне, как создать строку запроса в этом случае, когда данные содержат символ «&»?

var url = "http://www.abc.com"
    url += "?username='abc'";
    url += "&" + $.param(params);

/*
   params values are follows:

   params[name] = 'test'
   params[id] = 1234
   params[xyz] = 'entertainment & games'
*/

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

Ответы [ 2 ]

3 голосов
/ 15 марта 2011

Метод jQuery.param () кодируется как ожидалось. Этот фрагмент ...:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head><title></title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript"><!--
jQuery(function($){
    var params = {
        name: "test",
        id: 1234,
        xyz: "entertainment & games"
    };

    var url = ""
    url += "&" + $.param(params);

    alert(url);
});
//--></script>
</head>
<body>


</body>
</html>

... предупреждает об этом: &name=test&id=1234&xyz=entertainment+%26+games

Вы не говорите, что это за ошибка, но стоит отметить, что допустимая строка запроса должна начинаться с ?, а не &:

var url = ""
url += "?" + $.param(params);
1 голос
/ 29 декабря 2011

Немного внимания:

Вероятно, ошибка была сгенерирована значением "abc" для параметра "username" ...

url += "?username='abc'";

Правильный путь должен быть:

url += "?username=abc";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...