2014-11-03 115 views
0

嗨,我想调用一个C#方法来返回一个JSON,但不断收到错误。Ajax Post总是返回一个错误

$.ajax({ 
    type: 'POST', 
    url: 'ReportList.aspx/GetReports', 
    dataType: 'json', 
    success: function (response) { 
     dataset = response.d; 
    }, 
    error: function (response, success, error) { 
     alert("Error: " + error); 
    } 
}); 

我得到的错误读作:

意外标记<

以前我有的contentType:“应用/ JSON的; charset = utf-8',添加但返回了内部服务器错误。

我想调用json,以便我可以填充javascript.datatable。

C#功能:

public string GetReports() 
{ 
    System.Data.DataSet d; 
    d = (System.Data.DataSet)Session["dsHistory"]; 

    System.Data.DataSet DsNew = new System.Data.DataSet("cdreports"); 

    System.Data.DataTable table1 = new System.Data.DataTable("reports"); 
    table1.Columns.Add("id"); 
    table1.Columns.Add("name"); 
    table1.Columns.Add("regAndId"); 
    table1.Columns.Add("type"); 
    table1.Columns.Add("timeStamp"); 
    foreach (System.Data.DataRow row in d.Tables["company"].Rows) 
    { 
     table1.Rows.Add(row["rc_id"], row["companyname"], row["companyregnumber"], "Company", row["rc_timestamp"]); 
    } 
    foreach (System.Data.DataRow row in d.Tables["director"].Rows) 
    { 
     table1.Rows.Add(row["rd_id"], row["firstname"] + " " + row["surname"], row["idnumber"], "Director", row["rd_timestamp"]); 
    } 
    DsNew.Tables.Add(table1); 

    string json = JsonConvert.SerializeObject(DsNew, new DataSetConverter()); 

    return json; 
} 
+0

检查浏览器开发工具的网络选项卡以查看响应的样子。 – 2014-11-03 14:34:32

+0

@JasonP响应总是为空,它永远达不到我的C#函数,只是抛出上面提到的错误。 – Pomster 2014-11-03 14:35:45

+0

'GetReports()'应该是'static'并且具有'[WebMethod]'属性。 – 2014-11-03 14:37:19

回答

0

确保轨迹在页面上禁用。有时如果启用页面跟踪,则ajax调用不起作用。