2009-12-17 57 views
0

我使用jQuery由.NET 2.0中的應用。jQuery和.NET 2.0

但是,當我將它部署在沒有安裝.NET 3.5的服務器上時,它不起作用。

我沒有得到任何錯誤,不知道如何調試它。

使用jQuery-1.3.2.min.js。

完美的作品在我的測試環境,並與3.5安裝在我的另一臺服務器上。

一旦它被上傳到生產服務器與2.0 ASP.NET逢回調失敗。

<script type="text/javascript"> 
    $(document).ready(function() { 
     var item = $("[id$='txtItemName']"); 
     var category = $("[id$='ddlCategories']"); 
     var record = $("[id$='txtRecordID']"); 

     $("#btnSave").click(function() { 


      if (item.val().length == 0) { 
       alert("Please enter item name first."); 
       return false; 
      } 

      if (category.val().length == 0) { 
       alert("Please select a category."); 
       return false; 
      } 

      var paramArray = ["testText", escape(item.val()), "categoryID", category.val(), "recordID", 1]; 
      PageMethod("SaveMyData", paramArray, AjaxSucceeded, AjaxFailed); 

     }); 
    }); 

    function AjaxSucceeded (result) 
    {  
     alert("lykkedes" + result); 
    } 
    function AjaxFailed(result) 
    { 
     alert("failed" + result); 

    } 

    function PageMethod(fn, paramArray, successFn, errorFn) { 
     var pagePath = window.location.pathname; 
     //Create list of parameters in the form: 
     //{"paramName1":"paramValue1","paramName2":"paramValue2"} 
     var paramList = ''; 
     if (paramArray.length > 0) { 
      for (var i = 0; i < paramArray.length; i += 2) { 
       if (paramList.length > 0) paramList += ','; 
       paramList += '"' + paramArray[i] + '":"' + paramArray[i + 1] + '"'; 
      } 
     } 
     paramList = '{' + paramList + '}'; 
     //Call the page method 
     $.ajax({ 
      type: "POST", 
      url: "DataProcessor.aspx?" + fn + "=1", 
      contentType: "application/json; charset=utf-8", 
      data: paramList, 
      dataType: "json", 
      success: successFn, 
      error: errorFn 
     }) 
    ;} 
</script> 

而且數據處理器的程序是這樣的:

public void SaveMyData() 
{ 
    System.IO.StreamReader sr = new System.IO.StreamReader(Request.InputStream); 
    string line = ""; 
    line = sr.ReadToEnd(); 
    JObject jo = JObject.Parse(line); 
    string temp = (string)jo["recordID"]; 
    Response.Write(temp); 
} 

我進入AjaxFailed(結果)當我嘗試它....

任何幫助和建議大大appriciated ..

+1

你能提供你得到的錯誤? – marcgg 2009-12-17 12:06:12

+0

我想,但不知道如何得到一些ErrorCode的..結果是在返回空.. – 2009-12-17 12:50:23

回答

0

問題可能是JSON序列化程序,您的服務器是否安裝了ASP.Net 2.0 AJAX擴展程序?

+0

我已經要求我的主機,如果它的安裝..有無論如何解決這個,如果它不是? – 2009-12-17 12:30:26

+0

ASP.Net AJAX 2.0的擴展安裝在我的服務器上,所以它不能是.. – 2009-12-17 12:49:41

0

如果你不能調試,因爲它在生產環境中,那麼你能插入診斷嗎?

你擊中AjaxFailed功能,或不呢?

第一個建議是按代碼間隔編寫簡單的alert()語句,以查看是否可以跟蹤正在發生的事情。你可能想看看httpresult狀態和正在從調用返回的responseText的httpresult。

在服務器端,您可以寫出特定階段的某些日誌文件值,即JSON字符串。

也將回聲上面相對於串行器。嘗試使用

using System.Web.Script.Serialization; 

JavaScriptSerializer jss = new JavaScriptSerializer(); 

MyCustomClass mcc = jss.Deserialize<MyCustomClass>(someJSONstring); 

string someOtherJSONString = jss.Serialize(mcc); 
1

我不是驕傲地在這裏回答我的問題,因爲它是忠實地一個小白錯誤,我做...

的JSON DLL我所用的是不是一個與.NET 2.0支持。我以某種方式忽略了這個事實,它在我的測試環境中安裝了3.5。

我下載了最新版本的JSON.net dll,並使用了2.0 DLL,一切都像魅力一樣。

感謝在這裏的貢獻。