我有一个困扰着我的问题,尽管因为我有一个解决方法,它并没有阻止我。我正在尝试对我在 aspx 页面上的页面方法进行 ajax 调用。我需要取回 json,但GetGender
永远不会调用 WebMethod,除非我使用$.ajax
调用。
所以,这有效:
$.ajax({
type: "POST",
url: "StudentFunctions.aspx/GetGender",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
var data = google.visualization.arrayToDataTable(msg.d);
var options = {
title: 'Gender',
height: '5000px'
};
var chart = new google.visualization.PieChart(document.getElementById("chart_div"));
chart.draw(data, options);
}
});
但是,以下都不起作用:
$.get("StudentFunctions.aspx/GetGender", function(msg) {
alert(msg)
}, "json");
$.post("StudentFunctions.aspx/GetGender", function(msg) {
alert(msg)
}, "json");
$.getJSON("StudentFunctions.aspx/GetGender", function(msg) {
alert(msg)
});
上面的三个函数甚至不会触发 .Net 函数,但是如果我从$.post
and中删除“json”部分$.get
,它们至少会调用后端函数,但当然不会返回 json。
另外,另一个我不理解的问题我觉得很愚蠢,但是当我在$.ajax
函数中得到 json 响应时,那个对象(这里称为msg
)是什么样的?msg.d
对我有用,但我不知道为什么。某处有规范吗?