2012-10-01 3 views
0

녹아웃에서 아약스 요청을하는 데 도움이 필요합니다. 여기에 내 js 코드를 어디에 내가 webmethod 전화를합니다.녹아웃에서 아약스 통화를 할 수 없습니다

// Client-side routes  
Sammy(function() { 
    this.get('#:day', function() { 
     self.choosenDateId(this.params.day); 
     $.ajax({ 
      type: "POST", 
      url: 'SinglePageApp.aspx/GetData', 
      data: "{goalDate:'" + this.params.days + "'}", 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: function (msg) { 
       debugger; 
       self.choosenDateGoal(msg.d); 

       alert("success"); 
      }, 
      error: function (XMLHttpRequest, textStatus, errorThrown) { 
       alert(textStatus); 
       alert(errorThrown); 
      } 
     }) 
    }); 
}).run(); 

그리고 데이터 바인딩

<tbody data-bind="foreach: GetData"> 
      <tr data-bind="click: $root.goToGoal"> 
       <td data-bind="text: status"></td> 
       <td data-bind="text: data"></td> 
       <td data-bind="text: notes"></td> 
      </tr> 
     </tbody> 

그리고 parameter.But이의 WebMethod를 호출 할 수 없습니다 나의 webemthod에 내가 일 통과 한 내 HTML. 도와주세요.

답변

0
Sammy(function() { 
    this.get('#:day', function() { 
     self.choosenDateId(this.params.day); 
     $.get("SinglePageApp.aspx/GetData", { day: self.chosenDateId() }, self.choosenDateGoal); 
    }); 
}).run(); 

나는 문제가 당신이 $.get 호출 내에서 this.params.day을 사용 하였다는 사실이었다 생각합니다. 그 기능에서 나는 thisSammy 컨텍스트가 아니라 jQuery ajax XHR 컨텍스트에 대한 참조라고 믿습니다.

+0

그러나 여전히 SinglePageApp.aspx/GetData 메서드는 사용하지 않습니다. – akeeseth

+0

jquery를 사용하지 않고 메서드를 호출 할 수 있습니까? 예를 들어, 브라우저 또는 Fiddler2를 사용합니까? 다른 방법으로 호출 할 수 없다면 자바 스크립트에서 문제가되지 않을 수도 있습니다. 질문에 게시하지 않은 다른 코드에서 문제가 될 수 있습니다. 또한 $ .get 대신 $ .post를 시도 했습니까? $ .ajax를 사용해 보셨나요? – danludwig

+0

그 $ .ajax를 변경 했으므로 webmethod가 호출되었지만 table에 값을 가져올 수 없습니다. 여기에 제가 작성했습니다 즉 여기에서 webmethod를 호출 했으므로 문제가 있습니다. 그래서 어떻게 문제를 해결할 수 있는지 알 수 없습니다. – akeeseth

관련 문제