декодирование URL в asp.net - PullRequest
0 голосов
/ 06 ноября 2011

У меня есть форма в asp.net с несколькими текстовыми полями.Я пытаюсь отправить значения в них на сервер с помощью jquery ajax, но возникают проблемы.Я использую javascript encodeURIComponent для значений текстовых полей, а затем отправляю сообщения, но я вижу, что URL кодируется автоматически:

wanted result:
mylefturl/first%20name/last%20name

this is what's actually happenning:
mylefturl/first name/last name

, и поэтому я получаю ошибку asp.net ...

мой код JavaScript:

var firstName = $("#SignupFirstName").val();
            var lastName = $("#SignupLastName").val();
            var email = $("#SignupEmail").val();
            var password = $("#SignupPassword").val();

            var url = '/Ajax/GetSignup/' + encodeURIComponent(firstName) + '/' + encodeURIComponent(lastName) + '/' + encodeURIComponent(email) + '/' + encodeURIComponent(password);
$.ajax({
                    url: u,
...

Какое решение для этого?

1 Ответ

3 голосов
/ 06 ноября 2011

Я бы порекомендовал вам использовать параметр data при отправке вызова AJAX:

var firstName = $("#SignupFirstName").val(),
    lastName = $("#SignupLastName").val(),
    email = $("#SignupEmail").val(),
    password = $("#SignupPassword").val();

$.ajax({
    url: '/Ajax/GetSignup/',
    type: 'POST',
    data: { 
        firstName: firstName, 
        lastName: lastName, 
        email: email, 
        password: password 
    },
    success: function(result) {
        // TODO: process the results from the AJAX call
    }
});

Теперь jQuery позаботится о правильном кодировании URL-адресов, отправляемых на сервер.Эти значения будут отправлены как часть полезной нагрузки POST вместо URL.Это самый безопасный способ убедиться, что они правильно попадают на сервер.Я бы порекомендовал вам не использовать введенные пользователем значения как часть вашего URL-пути.Взгляните на следующий вопрос , чтобы понять, с какими трудностями вы можете столкнуться, если пойдете по этому пути.

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