回避策があるため、問題はありませんが、私を悩ませている問題があります。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)
});
上記の 3 つの関数は .Net 関数をトリガーしませんが、 and から "json" 部分を削除する$.post
と$.get
、少なくともバックエンド関数が呼び出されますが、もちろん json は返されません。
また、理解できないのはばかげていると思う別の質問ですが、$.ajax
関数で json 応答を取得すると、そのオブジェクト (ここでは と呼ばれますmsg
) はどのように見えますか? msg.d
私のためにトリックを行いますが、理由はわかりません。どこかに仕様はありますか?