Mozilla で正常に動作する次のコードがありますが、IE で実行するとオブジェクト未定義エラーが発生します
ここにコードがあります
$(document).ready(function () {
$("#button").click(function () {
$.ajax({
type: "POST",
beforeSend: function (xhr) {
xhr.setRequestHeader("Content-type",
"application/json; charset=utf-8");
},
data: "{'customerid':" + "'" + $("#check").val + "'}",
url: "ajaxcall.aspx/checkval",
success: function (data) {
var c = data.d;
alert("success");
$("#result").html("day:" + c.seconds);
}
});
});
});
今、jsonシリアル化を使用してcheckval関数内のサーバー側のC#コードを変更しました
Mydate md = new Mydate();
md.day = DateTime.Now.Day.ToString();
md.month = DateTime.Now.Month.ToString();
md.year = DateTime.Now.Year.ToString();
md.seconds = DateTime.Now.Second.ToString();
JavaScriptSerializer js = new JavaScriptSerializer();
return js.Serialize(md);
現在、コードは IE で機能していますが、文字列を次のように表示するだけです。
{"month":"10","year":"2011","day":"13","seconds":"44"} Mozillaa で動作しない
このコードで c のみを記述した場合、 c.seconds の代わりに
$("#result").html("day:" + c.seconds);
すべてのブラウザで機能しますが、結果は
{"月":"10","年":"2011","日":"13","秒":"44"}
必要なものがまだ手に入らない
ここに答えがあります最後に私はこれの代わりにそれを得ました
var c = data.d;
alert("success");
$("#result").html("day:" + c.seconds);
書く
var mydata = $.parseJSON(data.d);
$("#result").html(mydata.seconds);
これは IE と Mozilla の両方で動作します