尝试从asp.net函数读取json数据时出现以下错误,这是图像错误
这是jQuery代码,
<script type="text/javascript">
$(document).ready(function () {
$("#getdata").click(function () {
$.ajax({
type: "POST",
url: "Default.aspx/GetData",
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function (data) {
alert(data.d);
// $("#company").html(data.d);
console.log(data);
},
error: function (error) {
alert(error);
}
});
});
});
</script>
我做错了什么错误。感谢您的任何帮助。
从控制台日志console.log(error)
获取此错误
答案 0 :(得分:1)
您看到的原因是data.d
是表示返回的JSON文本响应的对象。将对象传入alert
时,会显示[object Object]
。无论您要寻找什么,都将成为data.d
的财产。我会在该行上设置断点并查看可用的属性。它将类似data.d.myProperty
,它将包含您尝试使用的实际字符串/ HTML。
答案 1 :(得分:0)
不要使用警报!这只会表明这一点。 由于您的响应是Json对象,请尝试使用JSON.stringify或使用console.log查看数据
答案 2 :(得分:0)
最后,我发现问题是什么,我必须在asp.net函数之前添加“[WebMethod()]”声明。例如,
[WebMethod()]
public static string GetData()
{
try
{
string strjson;
string connectionstring = ConfigurationManager.ConnectionStrings["ConString"].ConnectionString;
SqlConnection Con = new SqlConnection(connectionstring);
DataSet DS = new DataSet();
String CmdText = "Select Compname,compadd1,compadd2,compemail from aas_company where compid=@cmpid";
SqlCommand cmd = new SqlCommand(CmdText, Con);
cmd.Parameters.Add("@cmpid", SqlDbType.Int).Value = 22;
Con.Open();
SqlDataAdapter DA = new SqlDataAdapter(cmd);
DA.Fill(DS);
DataTable dTable = DS.Tables[0];
strjson = GetJSONString(dTable);
Con.Close();
return strjson;
}
catch (Exception ex)
{
throw new System.Exception("Error In Get Data" + ex.Message);
}
}
这个答案不适合初学者专家,谢谢。