2012-03-14 7 views
0
function sendStates(data) { 
    var states = new Object(); 
    states.Id = 1; 
    states.Name = "Chandan"; 
    $.post("WebService.asmx/MultiDim/", states, function (data) { 
     alert("reached"); 
    }); 
} 

sendStates (null);

WebService에 파일 :

[WebMethod] 
     public void MultiDim(statesTemplate states) 
     { 

     } 

MultiDim 기능 나던이 전화를받을.

+0

URL 매핑을 올바르게 설정 했습니까? – Igor

+0

알림이 실행됩니까? 그렇지 않으면 올바르게 연결되어 있지 않은 것으로 나타나며 경로가 올바르지 않다고 제안합니다. "WebService.asmx/MultiDim /"은 호출하는 URL과 동일한 위치에 있습니까? – Steve

답변

1

변경 :

var states = new Object(); 
    states.Id = 1; 
    states.Name = "Chandan"; 

var object = {states: {Id: 1, Name: "Chandan" }} 
$.post("WebService.asmx/MultiDim/", object, function (data) { 
    alert("reached"); 
}); 

에이 방법 매개 변수 이름이 필요합니다. .NET으로 보내는 객체는 요청을 구문 분석하기 위해 메서드 매개 변수 이름이 필요합니다.


[WebMethod] 
    public void MultiDim(statesTemplate states /* must be the javascript name too */) 
    { 

    } 

는 jQuery를하여 객체의 변수 이름 states 것을 알고하지 않습니다. 두 개의 속성이 IdName 인 객체 만입니다.

따라서 속성이 states 인 개체를 추가하면됩니다.

+0

그건 똑같은 것이 아닙니다 ... 코드는 "states"객체를 포함하는 "states"객체를 만듭니다. {Id : 1, Name : "Chandan"} 부분 만 지정하면됩니다. – Steve

+1

@ 스티브. 그것은 같은 것이 아닙니다. 나는 명확성을 위해 업데이트했습니다. – Joe

+0

오, 잡았다 ... 네, 업데이트 된 버전이 당신의 요점을 분명히합니다. 사과. :) – Steve

0

URL에 게시물을 게시하고 있습니까? 자바 스크립트 오류가 있습니까? 지금까지 가능한 문제가 1 개 있습니다. 귀하가 콜백을 지정하지 않은 경우 즉, function(){}의 게시물 부분 뒤에 있지만 () 내에 정의되는 json, xml 및 기타. 그래서 그것은 무시하고 출력 및 데이터를 다시 보내고 뭔가를 할 수있는 게시물 내의 기능을 건너 뛸 수 있습니다.

나는 그것이 작동하는지 아닌지를보기 위해 어떻게 바꿀지 예를 든다.

function sendStates(data) { 
    var states = new Object(); 
    states.Id = 1; 
    states.Name = "Chandan"; 
    $.post("WebService.asmx/MultiDim/", states, function (data) { 
     alert("reached"); 
    }, 'json'); 
} 

아직 사용하고 있지 않다면 firebug라는 브라우저 플러그인을 설치하는 것이 좋습니다. 그것은 당신이 가지고 있을지도 모른다 잠재적 인 문제점의 많은 것을 결정할 것을 도울 수있다.

1

JS 코드와 WS가 같은 경로를 공유합니까? webservice에 대한 경로를 지정해보십시오. 객체의 초기화가 손쉬워졌습니다.

function sendStates(data) { 
    var states = {Id: 1, Name: "Chandan"}; 
    $.post("/WebService.asmx/MultiDim/", states, function (data) { 
     alert("reached"); 
    }); 
} 

UPDATE : 당신이 요청이 실제로 후 피드백을 위해 콘솔에서 서비스로 전송하거나 감시되고 있음을 확인하기 위해 네트워크 트래픽을 본 적이 있습니까?

function dataTest (data) { 
    console.info('Arrived in the dataTest function'); 
    var states = { Id: 1, Name: 'Dustin' }; 
    $.post("Home/SomeTest", states, function (data) { 
     console.info('Post complete, data below'); 
     console.log(data); 
     alert('here'); 
    }, 'json'); 
} 
var ob = [{ Id: 3, Name: "Test" }, { Id: 4, Name: "Testing"}]; 
dataTest(ob); 

UPDATE : 2 :

본인은 전혀 문제없이 테스트 응용 프로그램 (마이너스 웹 서비스)에서 다음을 구현 가 콘솔이나 네트워크를 통해, 실제로라는지고 그 기능을 검증 할 당신이 수 있었습니까? console.info (여기에 'some text here')를 던져서 자신의 기능에 맞추는 지 결정하십시오. 함수로 만들면 문제는 WebService에 있습니다. 함수를 만들지 않으면 문제가 JS에 있습니다.

업데이트 3 : 게시자가 게시 한 주소로 WebService를 호출 할 수 있는지 확인한 다음 예상대로 작동하는지 확인합니다.그게 통과하는 경우 : 호출이 이벤트의 결과이고 해당 처리기의 경우 : 나는 이벤트 핸들러에서 추적하여 실제로 트리거되고 있음을 확인하고 마지막으로 sendStates (data) 요구. Else : 중단 점을 설정하고 sendStates (데이터) 호출을하는지 확인하십시오. Google 크롬은 Javascript 디버깅을 아직 사용하지 않는 경우 공원에서 산책을합니다. 행운을 빌어 요!

관련 문제