2011-01-31 462 views
0

我從webmethod返回一個簡單的字符串到一個Javascript函數。來自網頁的消息undefined

我在ASP.NET 2.0中使用支持AJAX的網站。我在firefox中獲得日期,但在IE 8中它返回undefined

我是否必須使用一些序列化類來解析JSON格式的字符串?在我的webmethod,我只是用:

return DateTime.Now.ToString(); 

$(document).ready(function(){ 
    var pageUrl = '<%=ResolveUrl("~/test/test.aspx")%>'; 

     // Test 
     $('#<%=trgNo.ClientID%>').change(function(){ 
      var trgId = $(this+'input:checked').val(); 

      $.ajax({ 
       type: "POST", 
       url : pageUrl+ '/getDet', 
       data : '{categ: "' +trgId + '"}', 
       contentType:"application/json; charset=utf-8", 
       dataType:"json", 
       success:OnSuccess, 
       failure: function(msg){ 
        if(msg.hasOwnProperty("d")) 
         alert(msg.d); 
        else 
         alert('error fetching values from database'); 
        } 
       }); 
     }); 

     function OnSuccess(msg) 
     { 
     if(msg.hasOwnProperty("d")) 
      alert(msg.d); 
     else 
      alert(msg); 
     } 
}); 

編輯 似乎成功函數在激發問題是響應「警報(MSG)」的作品在Firefox,而不是在IE 8與asp.net 2.0

+0

此代碼是在我的機器上工作正常(IE和Firefox這兩種)。做一件事看到提琴手的服務器響應,然後讓我知道 – 2011-02-01 11:41:24

回答

0

也許你不想使用這個,但我很滿意asp net ajax構建函數,因爲它構建了一個頭,可以在瀏覽器上正常工作。

$(document).ready(function(){ 
    var pageUrl = '<%=ResolveUrl("~/test/test.aspx")%>'; 

     // Test 
     $('#<%=trgNo.ClientID%>').change(function(){ 
      var trgId = $(this+'input:checked').val(); 

      var proxy = Sys.Net.WebServiceProxy; 
      proxy.invoke("",    // if current page "", if webservice "/srv.asmx" 
         "getDet",    //method name 
         false,     //post = true, get = false 
         { categ : trgId },  //javascript object 
         OnSuccess,    // Success Function 
         onError,    // Error Function 
         { yourOwn : userData } // Custom User Data to Handler 
      ); 

     }); 

     function OnSuccess(response, usercontext) 
     { 

      // usercontext.yourOwn === userData; 

      // response is sent WITHOUT "d", it is removed internally by the proxy 

     alert(response); 
     } 

}); 

不要忘了,包括使用ScriptManager ...