Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Ajax jQuery获取错误:[对象错误]_C#_Javascript_Jquery_Ajax - Fatal编程技术网

C# Ajax jQuery获取错误:[对象错误]

C# Ajax jQuery获取错误:[对象错误],c#,javascript,jquery,ajax,C#,Javascript,Jquery,Ajax,嗨,我尝试向我的Web服务发送一个参数来获取数据。但我总是遇到一个错误:[对象错误] 这个错误意味着什么 到目前为止,Web服务正在运行。如果我在浏览器中调用Webmethod,我将获得所有数据 我做错了什么。我试过很多东西,但都没用。。希望你能帮助我 我的问题是: function loadDate() { jQuery.support.cors = true; PanelID = document.getElementById('PanelID')

嗨,我尝试向我的Web服务发送一个参数来获取数据。但我总是遇到一个错误:[对象错误]

这个错误意味着什么

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

我做错了什么。我试过很多东西,但都没用。。希望你能帮助我

我的问题是:

    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;
     }
}
[脚本服务]
公营助理员
{
公共类VERANSTALTUNGEN
{
公共字符串Von{get;set;}
公共字符串Bis{get;set;}
公共字符串Thema{get;set;}
公共字符串PanelIDs{get;set;}
}
[网络方法]
[ScriptMethod(ResponseFormat=ResponseFormat.Json)]
公共静态列表getDatetime(字符串PanelID)
{
List Besprechungen=新列表();
StringBuilder query=new StringBuilder(“选择不同的r.PanelID作为PANEL_ID,rr.Von作为DATEVON,rr.Bis作为DATEBIS,b.THEMA作为BesprechungThema从RAUM r右连接保留RAUM rr ON r.ID=rr.RAUM_ID右连接BUCHUNG b ON rr.BUCHUNG_ID=b.ID,其中r.PanelID=@ID按rr.Von排序”);
使用(SqlConnection con=newsqlconnection(@“Data Source=Localhost\SQLEXPRESS;Initial Catalog=BOOK-IT\u LH;Integrated Security=true;”)
使用(SqlCommand cmd=newsqlcommand(query.ToString(),con))
{
cmd.Parameters.Add(“@ID”,System.Data.SqlDbType.Char);
cmd.Parameters[“@ID”].Value=PanelID;
con.Open();
使用(SqlDataReader rdr=cmd.ExecuteReader())
{
while(rdr.Read())
{
if(rdr[“DATEVON”!=DBNull.Value&&rdr[“DATEBIS”!=DBNull.Value)
{
Besprechungen.Add(新的VERANSTALTUNGEN()
{
Von=rdr[“DATEVON”].ToString(),
Bis=rdr[“DATEBIS”].ToString(),
Thema=rdr[“besprechungthema”]。ToString(),
panelid=rdr[“PANEL_ID”].ToString()
});
}
}
}
}
返回Besprechungen;
}
}
Web服务方法

[System.Web.Script.Services.ScriptService]
    public class Service1 : System.Web.Services.WebService
    {
        [WebMethod]
        public List<Helper.VERANSTALTUNGEN> getDatetime(string PanelID)
        {
            return Helper.getDatetime(PanelID);
        }
    }
[System.Web.Script.Services.ScriptService]
公共类服务1:System.Web.Services.WebService
{
[网络方法]
公共列表getDatetime(字符串PanelID)
{
返回Helper.getDatetime(PanelID);
}
}

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


使用
console.log
而不是
alert
查看Chrome/Firebug中控制台中的对象包含什么,或者循环对象并警告每个键/值。

当遇到问题时,使用数据类型json:

你不应该这样做:

data: "{ 'PanelID': '" + PanelID + "' }",
但更像是

data: { 'PanelID': PanelID },
否则,而不是发布您正在发送的字符串的某些对象


请务必阅读规范:

我现在尝试使用firebug,但它只显示失败:0:errorNow我在visual studio中用STRG+鼠标单击打开了url。我得到一个Http 500错误。但在浏览器中,url起作用了吗?这可能是问题所在吗?那么你可能应该阅读David的提示,并尝试验证错误是什么,甚至是说什么。您还可以调试c#代码来检查那里发生了什么——您传递的参数是否正确映射。这个错误不仅可能是由JS端引起的,也可能是由Webservice抛出异常引起的。我在我的问题中添加了一条评论,你能看一下吗?你可以安装firebug。转到选项卡脚本-启用它-重新加载页面-在那里找到您的脚本
警报(“失败:…
在那里添加一个断点(从行号中单击左侧)-触发事件。然后在命中断点后,转到控制台并检查msg元素(只需在控制台中键入msg并浏览结果)。然后,如果您在堆栈上搜索实际可以找到的问题,您可能会看到内部错误消息:这说明在使用.net webservices时,您应该查看
msg.d