jQuery를 통해 asp.net 웹 서비스 함수 호출을 수행하고 asp.net 응용 프로그램 경로를 전달해야합니다. 그건 내가 (코드 asp.net 페이지, 예를 들어, 영문 파일 내 위치)를 할 노력하고있어 방법 다음을 여기jQuery.ajax를 통해 폴더 경로 문자열을 웹 서비스 함수에 전달하는 데 문제가 있습니다.
protected string GetApplicationPath()
{
return HttpUtility.HtmlEncode(Request.PhysicalApplicationPath);
}
그리고 : 같은 GetApplicationPath 방법은 어떻게 표시되는지를 보여줍니다
var d = "{'str':'<%=System.DateTime.Now.ToString() %>', 'applicationPath':'<%=GetApplicationPath() %>'}";
$.ajax({ type: "POST",
url: "http://localhost/testwebsite/TestWebService.asmx/Test",
data: d,
contentType: "application/json; charset=utf-8",
dataType: "json",
error: function (xhr, status, error) {
var err = eval("(" + xhr.responseText + ")");
alert(err.Message);
},
success: function (msg) {
}
});
public void Test(string str, string applicationPath)
함수 호출이 제대로 작동하지만 applicationPath 매개 변수가 올바르게 전달되지 않습니다. 내가 디버깅 할 때 "C : \ Projects \ Samples \ mytestwebsite \"대신 "C : ProjectsSamplesmytestwebsite"라는 함수가 있으면 백 슬래시가 제거 된 것을 볼 수 있습니다.
어떻게 이것을 극복 할 수 있습니까?
시도했지만 작동하지 않았습니다. –
클래스에 [ScriptService] 특성이 있고 메서드에 [WebMethod] 및 [ScriptMethod (ResponseFormat = ResponseFormat.Json)]이 있는지 확인하십시오. – Craig
아마도 HttpUtility.HtmlEncode (...)가 문제입니다. – Craig