Отправьте знак "@", содержащий данные, через Ajax - PullRequest
1 голос
/ 22 марта 2011

Мой код похож на Ниже.

$.ajax({               
    url:'http:://www.sample.com/checkmail/'+$('#txtemail').val(),
    success: function(data)
    {
        $('#response').html(data);
        if(data!="Success")                 
        {
            $('#txtemail').css("background-color","#FF8A8D");
        }
        else
        {
            $('#txtemail').css("background-color","white");
        }
    }
});

Выше код работает при передаче данных без знака '@'

Пример:

//passing Hello
txtemail = "Hello"

//ajax response message in firefox
GET http://www.example.com/checkmail/Hello 200 OK 503ms

Но если я передампо электронной почте, как показано ниже, выдает ошибку

Example: 
//passing hello
txtemail = "hello@eee.com"

//ajax response message in firefox
GET http://www.example.com/checkmail/hello@eee.com 400 Bad Request 26ms

Любые предложения Как решить эту проблему

Ответы [ 2 ]

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

Используйте encodeURIComponent() на адресе электронной почты.

url:'http://www.sample.com/checkmail/'+encodeURIComponent($('#txtemail').val()),

@ является зарезервированным символом в URL (для схемы username:password@domain) и должен кодироваться в процентах.

0 голосов
/ 22 марта 2011

Вам нужно будет закодировать URL, как сказал Юникрон, вы также можете использовать функцию escape () для этого ....

url:'http://www.sample.com/checkmail/'+escape($('#txtemail').val())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...