我的问题有点复杂: 我在c#,asp.net和使用jquery
写作这适用于所有浏览器,但在Internet Explorer中。 在Internet Explorer中,会话似乎包含旧信息(旧用户ID)。令人难以置信的是,相同的代码在firefox,chrome和safari中运行良好,但是没有使用ie。
可能导致什么?我不知道哪里可以开始寻找解决方案。
顺便说一句,对于一般的标题,对不起,怎么用几句话就无法解释。
以下是jquery代码和ashx:
jquery的
function SendRequstToServer(actionId, additional, callback) {
if (actionId == "-1") {
document.location = "default.aspx";
}
$.ajax({ url: "SmallRoutinesHandler.ashx", method: "GET",
//asyn: false,
data: "Action=" + actionId + additional,
contentType: "string",
error: function(xhr, status, errorThrown) {
alert(errorThrown + '\n' + status + '\n' + xhr.statusText);
},
success: function(data) {
alert(data);
callback(data);
}
});
}
ASHX
context.Response.ContentType = "text/plain";
action = context.Request.QueryString["Action"];
switch ((ClientSideActionsRequest)Enum.Parse(typeof(ClientSideActionsRequest), action))
{
case ClientSideActionsRequest.ShowProducts:
long userId = WebCommon.CurrentlyWatchedUser.Id;
List<UserItems> userItems = UserItems.GetByUserId(userId);
string[] items = HtmlWrapper.WrapAsItems(userItems);
if (items.Length > 0)
{
context.Response.Write(items.Aggregate((current, next) => string.Format("{0} , {1}", current, next)));
}
break;
}
谢谢!
答案 0 :(得分:1)
你能更具体一点吗?这里有一些可能出错的东西 - 它是在浏览器上缓存,还是在服务器上调试时,是否显示Session的旧值?
确保将jQuery .ajax调用的缓存选项设置为false。您可能还希望看到有关IE的ajax缓存的侵略性的this question and answer。
答案 1 :(得分:1)