2011-03-22 7 views
1

내 코드는 아래와 같습니다. 하지 않고 데이터를 전달할 때 코드 위Ajax를 통해 데이터가 포함 된 "@"기호를 전송하십시오.

$.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 = "[email protected]" 

//ajax response message in firefox 
GET http://www.example.com/checkmail/[email protected] 400 Bad Request 26ms 

어떤 제안 이 문제를 극복하는 방법

+0

당신은 당신의 URL에 오타가'HTTP : //' – Unicron

답변

3

전자 메일 주소에 encodeURIComponent()을 사용하십시오.

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

@합니다 (username:[email protected] 구성표)는 URL의 예약 문자이며 %는 인코딩 할 필요가있다.

+0

고맙습니다. 전자 메일을 보낼 때 @ 기호를 % 40으로 바꿉니다. 다시 엔드 포인트를 다시 (40 % @로) 교체해야합니다. 나는 먼 길을 갔다. 쉬운 방법에 감사드립니다. – llcoollasa

0
유니크론은 u는이에 대한 이스케이프() 함수를 사용할 수 말했듯이 당신은 URL을 인코딩해야합니다

....

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

'escape()'을 사용하지 마십시오. 참조 : http://stackoverflow.com/questions/75980/best-practice-escape-or-encodeuri-encodeuricomponent – Tomalak

+0

감사합니다 Tomalak ............ –

관련 문제