2012-04-11 3 views
3

자바 스크립트에서 C# 메서드를 호출하려고합니다. 웹 개발에 익숙하지 않고 jquery를 사용하여 동일한 호출을하기 위해 방법은 다음과 같습니다 여기jquery를 사용하여 C# 메서드에 액세스 할 수 없습니다.

$.ajax({ 
      type: "POST", 
      url: "Default.aspx/IncrementJ", 
      data: "{}", 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: function(msg) { 
      alert("success!") 
      } 
     }); 

IncrementJ 내가 call.here 할 C#으로 정의 내 함수 이름은 정의입니다 : 내가 실행할 때

[WebMethod] 
    public static void IncrementJ() 
    { 

     try 
     { 
      j++; 
     } 
     catch (Exception ex) 
     { 
      throw ex; 
     } 
    } 

내 프로그램 웹 콘솔에서 오류가 발생 "할 수 없습니다 resource incrementJ "를 찾으십시오; 내가 잘못 가고있는 곳을 말해주십시오.

감사합니다. 내가 볼

+0

서비스가 컴퓨터에서 실행되고 있다고 가정합니다. 이 경우 ajax 호출에서 url을 "http : // localhost : 8080/Default.aspx/IncrementJ"로 변경해보십시오. 포트 번호를 8080으로 지정했으나 사용하려고하는 웹 서비스를 호스팅하는 로컬 서버가 실행중인 실제 포트 번호로 대체해야합니다. – praneetloke

+0

스크립트가 외부 파일에 있습니까? 그렇다면 다음을 살펴보십시오. http://stackoverflow.com/questions/5228106/calling-jquery-ajax-to-consume-webmethod-from-external-js-file –

+0

예 서버가 실행 중입니다. 서버에서 데이터를 가져올 수 있습니다. 그렇습니다. 스크립트는 asps.cs 파일에 있습니다. – Snedden27

답변

4

해야합니다 .. 당신이 데이터 개체 주위에 따옴표를 제거 할 필요가있다 오류가 호출하는 스크립트를 대신 있음을 추론 : 스크립트가의 WebMethod를 찾을 수없는 점을 감안

"인형에 대한 HTTP 응답 코드"그래서

50x: we messed up. 
40x: you messed up. 
30x: ask that dude over there. 
20x: cool. 

, 나는 그것의 박람회가 있음을 추론 할 생각 찾고있는 잘못된 위치. Default.aspx/IncrementJ을 참조 할 때 상대 경로를 입력하십시오.

+0

예, 경로가 잘못되어 asp.net은 때때로 경로를 뒤죽박죽합니다. 다시 한 번 감사드립니다. – Snedden27

1

한 가지는 할 수있는, 그것은 빈 JS 객체 예를 들어 {} 에러 상태가 아니고, 404 (찾을 수 없음) 당신의 의견을 감안 "{}"

+0

그래도 같은 오류가 발생했습니다. 즉 리소스를로드하는 데 실패했습니다. 서버가 404 상태 (알 수 없음)로 응답했습니다. – Snedden27

관련 문제