2014-11-24 1 views
2

내 문자열에 #이 있습니다.URL 인코딩 구성 요소가 문자열 서버 측에 들어 가지 않습니다.

그리고 그 문자열을 서버 측에서 Ajax를 통해 내 C# 메소드로 보내고 있습니다. 내가로 보내고

은 다음과 같습니다

$.ajax({ 
type: "POST", 
url: "http://localhost:5889/MobileEcomm/Service1.svc/validateLogin/"+EmailID+"/"+encodeURIComponent(Password), 
crossDomain: true, 

success: function (data) { 

    alert(JSON.stringify(data)); 
    alert("Login Sucessfull!!!"); 
     window.location = "viewOrders.html"; 

    // do something with server response data 
}, 
error: function (err) { 
    // handle your error logic here 
    alert("Error"); 
} 

});

내 암호 문자열 : [email protected]#

내 C# 방법 구조 :

public string validateLogin(string Email, string Password) 
     { 
       return Password; 
     } 

Wheni는 C#에서 암호 매개 변수를 얻을 수는, 그것의는 다음과 같이

[email protected] 

내가

의 경고를 만들 때
encodeURIComponent(Password) 
,210

그것 : 내가 같은 결과를 얻지 못하고있는 이유

pass%40%23 

내 C#을 방법에 암호를 매개 변수로 (% 40 % 23 패스) ???

도와주세요.

답변

2

IIS + ASP.Net/WCF 위에 WCF 데이터 서비스를 호스팅하는 경우 엔티티 키에 포함되어있을 때 서버가 throw되는 특정 문자가 있음을 발견 할 수 있습니다. 결과는 400 개의 잘못된 요청 또는 404 개의 찾을 수 없음입니다. VS 2010 RC에서는 이러한 문자를 지원하도록 서버를 구성 할 수 있지만 먼저 문자가 "특수"로 간주되는 문자를 확인하십시오.

%, &, *, :, <,>, +, #,/,?,

위의 문자 중 하나라도 엔터티의 문자열 키 내에 사용되면 Uri를 이스케이프할지 어떨지에 관계없이 해당 엔터티를 쿼리하면 오류가 발생합니다.

그리고 올바른 결과를 제공하지 않는 이유는 URL에 #을 사용하고 있기 때문입니다.

체크

http://blogs.msdn.com/b/peter_qian/archive/2010/05/25/using-wcf-data-service-with-restricted-characrters-as-keys.aspx

당신은 또한 당신이 값으로 40 %에게 23 %를 얻고있는 이유, 그것은 질문의 두 번째 부분에 응답 할뿐만 아니라이 링크를 참조하는 것 같아서 MSDN 블로그 솔루션에 대한 링크 .

https://social.msdn.microsoft.com/Forums/vstudio/en-US/d03c8331-1e98-4d5d-82a7-390942a93012/special-characters-in-wcf-rest-atom-feed?forum=wcf

+1

마지막 링크는 나를 도와주었습니다. 고맙습니다. :) –

관련 문제