2011-09-23 2 views
3

다음 코드가 있습니다. Jquery Ajax는 webmethod를 호출합니다. 우편 번호 "07306"을 전달하면 세션이 "7306"으로 설정됩니다. 정면에서 제로를 제거하는 이유는 모르겠다!WebMethod가있는 Jquery AJAX는 앞에서 0을 제거합니다.

function onChangeLocation(){ 
     var newzip =$('#<%= txtNewLocation.ClientID %>').val(); 
     $('#<%= lblDefaultLocation.ClientID %>').html(newzip); 
      $.ajax({ 
      type: "POST", 
      url: "/WebMethods.aspx/ChangeLocation", 
      data: "{newLocation:" + newzip + "}", 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: function(msg) { 
      alert(msg.d); 
      } 
      }); 
     } 


    [System.Web.Services.WebMethod()] 
      public static String ChangeLocation(String newLocation) 
      { 

       HttpContext.Current.Session["ClientZipCode"] = newLocation.ToString(); 
       return newLocation.ToString(); 
      } 

누군가 제로를 앞면에서 제거하는 이유를 설명해주세요.

+0

왜 JSON 문자열을 작성하여 데이터에 전달하려고합니까? 그냥 객체를 전달하고 문자열을 거기에 강제로 넣으십시오. 'data : {newLocation : newzip + ''}'. –

+0

Firebug 또는 Chrome DEV 도구를 사용하여 실제로 서버에 게시 된 내용을 확인하십시오. '07306'을 보내는 중이라면 서버 측에 문제가 있으며 ASP.NET에 대한 단서가 없지만 적어도 문제가 어디 있는지 알 수 있습니다. –

+1

@El Yobo 잘 서버 측에서 문제가되지 않았습니다. "{newLocation : '"+ newzip + "'}"문제가 해결되었습니다. –

답변

1

문제 JS이를 수정해야

$('#<%= lblDefaultLocation.ClientID %>').html(newzip + ''); 

에 그것을

$('#<%= lblDefaultLocation.ClientID %>').html(newzip); 

변경 정수 생각이다.

+1

아무 것도 변경되지 않습니다. newzip 값은 DOM에 다시 검색되지 않고 서버에 게시 될 때 그대로 사용됩니다. 근본적인 문제는 맞습니다. 어딘가에 정수로 취급되므로 선행 0을 제거합니다. –

+4

좋은 점''{newLocation : ' "+ newzip +"'} "'을 사용해 보셨습니까? – Korich

+0

이 마지막 코멘트가 효과가있었습니다. –

관련 문제