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