为什么我的C#方法不从AJAX调用?

问题描述:

我想调用下面的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

下载并安装Fidder4

这将允许您查看您的页面和您的服务器之间的流量。您可以看到实际的通话URL,然后将其粘贴到浏览器中以查看返回的内容。这将为您提供解决此类问题的工具。