【问题标题】:Why is my C# method not being called from AJAX?为什么没有从 AJAX 调用我的 C# 方法?
【发布时间】:2015-02-10 23:35:55
【问题描述】:

我正在尝试调用以下 C# 方法:

[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 在另一个函数中工作,所以不是这样。

【问题讨论】:

  • 你返回了什么 HTTP 响应?
  • @zerkms 500 内部服务器错误
  • 那么用调试器运行你的项目,看看什么失败了?
  • @zerkms 当我删除数据(我不需要它)和 contentType 时,我收到 200 错误。
  • 特别是 SyntaxError Unexpected Token

标签: javascript c# sql ajax json


【解决方案1】:

下载并安装Fidder4

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

【讨论】:

    猜你喜欢
    • 2019-06-10
    • 2015-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-07
    • 2019-07-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多