第二次调用JQuery Ajax函数时,我遇到了奇怪的行为。我在函数中隔离了调用,并且连续两次调用相同的函数。我在Fiddler中验证了发送到服务器的数据,并且在两个AJAX调用中从服务器发送的数据完全相同。这是AJAX请求:
GetMeetingsList(myUserInfo);
GetMeetingsList(myUserInfo);
function GetMeetingList(myUserInfo) {
$.ajax({
url: "/api/AM/GetMeetingList/" + myUserInfo.UserId + "/" + myUserInfo.CurrentAccountId + "/" + myUserInfo.DefaultGroupId + "/" + myUserInfo.AgendaDateRangeId + "/" + myUserInfo.key,
type: "get",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (myReturn) {
DisplayMeetingsGrid(myReturn.myMeetingIEnumerable);
},
error: function (err) {
alert(err.responseText);
},
complete: function () {
}
});
}
服务器返回会议对象数组。其中一个字段是服务器上DateTime类型的“MeetingDate”字段。在第一次调用时,客户端将日期转换为Date对象,在第二次调用时,客户端将Date转换为字符串,即使返回相同的确切数据。我使用console.log来查看返回数据。
以下是第一次电话会议的MeetingDate:
这是第二个回复MeetingDate:
如您所见,一个是日期对象,另一个是字符串。谁知道为什么?我目前的解决方案是循环我的会议数据并将字符串转换回第二次调用中的日期,这解决了我的问题(下面的解决方案)。但我宁愿不必这样做。
function DisplayMeetingsGrid(myMeetings) {
$.each(myMeetings, function (key, value) {
value.MeetingDate = new Date(value.MeetingDate);
});
\\use the data