我的代码就像下面一样。
$.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
任何建议如何克服这个问题
答案 0 :(得分:3)
在电子邮件地址上使用encodeURIComponent()
。
url:'http://www.sample.com/checkmail/'+encodeURIComponent($('#txtemail').val()),
@
是URL中的保留字符(对于username:password@domain
方案),需要进行百分比编码。
答案 1 :(得分:0)
你必须对网址进行编码,因为Unicron说你也可以使用escape()函数....
url:'http://www.sample.com/checkmail/'+escape($('#txtemail').val())