2015-02-10 53 views
0

我想調用下面的C#方法:爲什麼我的C#方法不從AJAX調用?

[WebMethod] 
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)] 
    public static string getJSONdata() 
    { 
     string jsonString = ""; 
     using (SqlConnection con = new SqlConnection(connectionString)) 
     { 
      con.Open(); 
      using (SqlCommand cmd = new SqlCommand("SELECT TOP 10 * FROM DRAW ORDER BY DrawID DESC;", con)) 
      { 
       using (SqlDataReader reader = cmd.ExecuteReader()) 
       { 
        List<Dot> _Dot = new List<Dot>(); 

        while (reader.Read()) 
        { 
         Dot dot = new Dot(); 
         dot.x = (int.Parse(reader["xCoord"].ToString())); 
         dot.y = (int.Parse(reader["yCoord"].ToString())); 

         if (reader["DrawID"] != DBNull.Value) 
          dot.i = (int.Parse(reader["DrawID"].ToString())); 

         _Dot.Add(dot); 
        } 
        JavaScriptSerializer jss = new JavaScriptSerializer(); 
        jsonString = jss.Serialize(_Dot); 
       } 
      } 
     } 
     System.Diagnostics.Debug.WriteLine(" JSON: " + jsonString); 

     return jsonString; 
    } 

這裏是我的JavaScript代碼:

$.ajax({ 
       url: 'Default.aspx/getJSONdata', 
       data: '{ }', 
       contentType: 'application/json; charset=utf-8', 
       dataType: 'json', 
       success: function (response) { 
        alert(response.d); 
       }, 
       error: function (xhr, ajaxOptions, thrownError) { 
        alert(xhr.status); 
        alert(thrownError); 
       } 
      }); 

首先,我得到了ajax錯誤。不知道爲什麼不叫。 其次,我仍然不確定我是否返回了我想要的正確JSON數據,無論格式是否正確。謝謝你的幫助。

編輯。它正確地返回一個JSON字符串。

注意:connectionString工作在另一個功能,所以不是這樣。

+0

你有什麼HTTP響應? – zerkms 2015-02-10 23:43:32

+0

@zerkms 500內部服務器錯誤 – btalbot 2015-02-10 23:45:43

+2

因此,使用調試器運行您的項目並查看失敗? – zerkms 2015-02-10 23:46:30

回答

0

下載並安裝Fidder4

這將允許您查看您的頁面和您的服務器之間的流量。您可以看到實際的通話URL,然後將其粘貼到瀏覽器中以查看返回的內容。這將爲您提供解決此類問題的工具。