2009-10-25 1 views
3

위와 같은 메서드를 호출 할 때 JQuery에서 다음과 같은 영숫자 매개 변수를 전달하려고하면 오류가 발생하는 것 같습니다.JQuery ajax 호출은 영숫자 매개 변수를 사용하지 않습니다!

   $.ajax({ 
       type: "POST", 
       url: "Default.aspx/AjaxTest", 
       data: "{eventID:9a5}", 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       success: function(msg) { 
        alert(msg.d); 
       }, 
       error: function(e) { 
        alert("Event could not be added to calendar"); 
       } 
      }); 

오류 콜백이 호출됩니다. 그러나 eventID 매개 변수를 순전히 숫자 값으로 변경하면 정상적으로 작동하고 성공 콜백이 호출됩니다. 서버 메서드에 영숫자 값을 전달하고 싶습니다. 그리고이 기능이 작동하지 않는 것 같습니다. 어떤 도움을 주시면 감사하겠습니다.

아메드

답변

1

. "JSON 프리미티브가 유효하지 않습니다"라는 JSON 오류 메시지가 나타납니다. 내 문자열 매개 변수 주위에 작은 따옴표를 추가해야만 JSON이 문자열을 역 직렬화 할 때 문자열이라고 이해할 수있었습니다. 내 영숫자 데이터 주위에 작은 따옴표를 추가하여 JSON이 문자열이라는 것을 이해하게되었습니다. 내 코드가 작동하는 방식입니다.

 $.ajax({ 
      type: "POST", 
      url: "Default.aspx/AjaxTest", 
      data: "{eventID:'9a5'}", 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: function(msg) { 
       alert(msg.d); 
      }, 
      error: function(e) { 
       alert("Event could not be added to calendar"); 
      } 
     }); 

고마워요.

4

정기적 자바 스크립트 사전과 같은 데이터를 전달해야하지 않나요?

$.ajax({ 
... 
data: {"eventID": "9a5", "SomeNumericField": 25} 
... 
}); 

(예를 들면 :.. 데이터 주위에 따옴표를 넣지 마십시오 나는 그와 같은 문자열이 있어야 아니에요 확신)

난 그냥이 문제를 해결하는 방법을 배웠습니다
+0

또한 데이터를 게시하는 URL이 해당 매개 변수에 숫자가 아닌 값을 허용하는지 확인하십시오. 오류가 반환되었을 수 있습니다. –

+0

@Bartek : 시도해 보았을 때 숫자와 영숫자 모두에서 작동하지 않았지만 이전에는 숫자 값에 대해서는 정상적으로 작동했습니다. @Steve : 문자열 인수를 취하는 asp.net webmethod가 있습니다. 충분하지 않아야합니까? –