2013-06-02 2 views
0

현재 im은 웹 서비스에서 데이터를 가져 와서 검색된 데이터를 테이블에 표시하려고하는 asp.net 웹 사이트를 수행하고 있습니다. 아래는 아약스입니다. 내가 요소를 검사하지만 여전히 오류 알의 수 해달라고 할 때 웹 서비스리소스를로드하지 못했습니다 : 서버가 500 (내부 서버 오류)의 응답으로 응답했습니다.

 [WebMethod] 
     [ScriptMethod(ResponseFormat = ResponseFormat.Json)] 
     public JsonDataTable createJsDataTable() 
     { 

     JsonDataTable jsDT = new JsonDataTable(); 

     List<object> vl = new List<object>(); 
     vl.Add("value 1"); 
     vl.Add("value 2"); 
     vl.Add("value 3"); 
     vl.Add("value 4"); 
     jsDT.add_Row(vl); 

     return jsDT; 
     } 

를 들어

<script type="text/javascript"> 
$.ajax({ 
type: "GET", 
url: "/CaregiverService.asmx/createJsDataTable", 
data: "{}", 
contentType: "application/json; charset=utf-8", 
dataType: "json", 
success: function (json) { 
    console.log(json); 
    console.log(json.d.aaData); 
    $('#nursingHomeTable').dataTable({ 
     "aaData": json.d.aaData, 
    }); 
}, 
error: function(XMLHttpRequest, textStatus, errorThrown) { 
       alert("Status: " + textStatus); alert("Error: " + errorThrown); 
      }  
}); 
</script> 

은 그 오류를 받고있다. google chrome의 inspect 요소에서 http://localhost:2179/CaregiverService.asmx/createJsDataTable을 클릭했는데 정상적으로 작동합니다. 누군가가 내 문제를 해결할 수 있다고 생각하면 : x

답변

0

이것이 문제를 해결할 지 모르겠지만, Asp.net 웹 서비스는 기본적으로 POST 방법을 사용한다고 확신했습니다. 그래서 유형을 POST로 변경해보십시오.

[WebMethod] 
[ScriptMethod(UseHttpGet = true)] 

또는 당신의 Web.config에서

이 시도

또는

설정은 웹 서비스에 수신 측에서 이것을 설정하려고이

<webServices> 
    <protocols> 
     <add name="HttpGet"/> 
     <add name="HttpPost"/> 
    </protocols> 
</webServices> 
+0

HTTP ://stackoverflow.com/q/2716363/447356 –

+0

좋습니다. 좋은 생각이 들었습니다. 관련 stackoverflow 게시물에 대한 링크를 게시하려면, 왜 내 대답을 downvote 않았다? 불분명하고, 부정확했거나, 잘못 잘못 되었습니까? 그것을 향상시키고 스너프로 만들려면 어떻게해야합니까? –

+0

당신은 "나는 그 POST가 틀린 것으로 판명 된 Asp.net 웹 서비스가 POST 방법에서만 가져올 것이라고 확신했다"고 말했다. 이제는 유용한 정보를 추가 했으므로 더 나은 도움이 될 것입니다. –

관련 문제