【问题标题】:Ajax jQuery getting Error: [object Error]Ajax jQuery 出现错误:[对象错误]
【发布时间】:2012-09-20 08:38:21
【问题描述】:

您好,我尝试向我的 Web 服务发送参数以获取数据。但我总是得到一个错误:[object Error]

Error-Snapshot

那个错误是什么意思?

到目前为止,Web 服务正在运行。如果我在浏览器中调用 Web 方法,我会得到所有数据。

我做错了什么。我尝试了很多东西,但没有任何帮助..希望你能帮助我

我的查询:

    function loadDate() {

        jQuery.support.cors = true;
        PanelID = document.getElementById('PanelID').value;
        alert(PanelID);


        jQuery.ajax({
            type: "POST",
            url: "http://nexxt-entwicklung.de/Web/Service1.asmx/getDatetime",
            data: "{ 'PanelID': '" + PanelID + "' }",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function(msg) {
                alert("Success: " + msg.d);

            },
            error: function(msg) {
                alert("Failed: " + msg.status + ": " + msg.statusText);

            }
        });   
    }

我的网络服务:

 [ScriptService]
public class Helper
{
    public class VERANSTALTUNGEN
    {
    public string Von { get; set; }
    public string Bis { get; set; }
    public string Thema { get; set; }
    public string PanelIDs { get; set; }
    }

    [WebMethod]
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
    public static List<VERANSTALTUNGEN> getDatetime(string PanelID)
        {

            List<VERANSTALTUNGEN> Besprechungen = new List<VERANSTALTUNGEN>();

            StringBuilder query = new StringBuilder("SELECT DISTINCT r.PanelID AS PANEL_ID, rr.Von AS DATEVON, rr.Bis AS DATEBIS, b.THEMA AS BESPRECHUNGSTHEMA FROM RAUM r right join RESERVIERUNGRAUM rr ON r.ID = rr.Raum_ID right join BUCHUNG b ON rr.BUCHUNG_ID = b.ID where r.PANELID = @ID ORDER BY rr.VON");

            using (SqlConnection con = new SqlConnection(@"Data Source=Localhost\SQLEXPRESS;Initial Catalog=BOOK-IT_LH;Integrated Security=true;"))
            using (SqlCommand cmd = new SqlCommand(query.ToString(), con))
            {
                cmd.Parameters.Add("@ID", System.Data.SqlDbType.Char);
                cmd.Parameters["@ID"].Value = PanelID;
                con.Open();

                using (SqlDataReader rdr = cmd.ExecuteReader())
                {
                    while (rdr.Read())
                    {
                        if (rdr["DATEVON"] != DBNull.Value && rdr["DATEBIS"] != DBNull.Value)
                        {
                            Besprechungen.Add(new VERANSTALTUNGEN()
                            {
                                Von = rdr["DATEVON"].ToString(),
                                Bis = rdr["DATEBIS"].ToString(),
                                Thema = rdr["BESPRECHUNGSTHEMA"].ToString(),
                                PanelIDs = rdr["PANEL_ID"].ToString()
                            });
                        }
                    }
                }
            }
            return Besprechungen;
     }
}

网络服务方法

[System.Web.Script.Services.ScriptService]
    public class Service1 : System.Web.Services.WebService
    {
        [WebMethod]
        public List<Helper.VERANSTALTUNGEN> getDatetime(string PanelID)
        {
            return Helper.getDatetime(PanelID);
        }
    }

【问题讨论】:

  • 现在我在 Visual Studio 中使用 STRG+鼠标单击打开了 URL。我收到一个 Http 500 错误。但在浏览器中,网址有效吗?这可能是问题吗?

标签: c# javascript jquery ajax


【解决方案1】:

这意味着msg.statusText 是一个对象,它是Error 的一个实例。

使用 console.log 而不是 alert 在 Chrome/Firebug 的控制台中查看对象包含的内容,或者循环访问对象并提醒每个键/值。

【讨论】:

  • 我现在尝试使用 firebug,但它只显示失败:0:错误
【解决方案2】:

说到问题本身,同时使用dataType json:

你不应该这样做:

data: "{ 'PanelID': '" + PanelID + "' }",

而是类似

data: { 'PanelID': PanelID },

否则会导致您发送字符串而不是发布一些对象

请务必阅读规范:http://api.jquery.com/jQuery.ajax/

【讨论】:

  • 那么您可能应该阅读 David 的提示并尝试验证错误甚至在说什么。您还可以调试 c# 代码以检查那里发生了什么 - 您传递的参数是否正确映射。该错误不仅可能由JS端引起,也可能由Webservice抛出异常引起。
  • 我对我的问题添加了评论,请你看一下
  • 你可以安装萤火虫。转到选项卡脚本 - 启用它 - 重新加载页面 - 在那里找到你的脚本 alert("Failed: ... 添加一个断点(从行号单击左侧) - 触发事件。然后在断点被命中后,转到控制台并检查 msg 元素(只需在控制台中键入 msg 并浏览结果)。然后你大概可以看到内部错误信息
  • 如果您在堆栈上搜索问题,您实际上可以找到:stackoverflow.com/questions/6463028/…,其中指出在使用 .net 网络服务时您应该查看msg.d
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-25
  • 1970-01-01
相关资源
最近更新 更多