从 jQuery AJAX 帖子调用的我的 .ashx 处理程序有时不会在 HttpContext.Request 中接收表单元素。
发生这种情况时,请求要么仅包含 ViewState 元素,要么根本不包含任何元素。
它仅在 IE7、IE8 和 IE9 上偶尔失败(各种浏览器每天点击数千次)。我自己无法使用 IE 重现此问题,并且“大多数”IE 用户(以及所有其他用户)不会遇到此问题。
Javascript:
var data = $('form').serializeArray();
$.ajax({
type: "POST",
async: false,
dataType: "text",
url: "handler.ashx",
data: data
});
C# (handler.ashx):
void IHttpHandler.ProcessRequest(HttpContext context) {
var collection = SetCollection(context.Request);
// collection sometimes has just ViewState elements;
// sometimes it has no items
}
private NameValueCollection SetCollection(HttpRequest request){
return request.Form;
}
其他信息:该站点是具有负载平衡器的网络场的一部分。使用.net 3.5。我读到 IE 有不同的生成请求头的方式;不确定这是否相关。
感谢您对解决我的问题的任何见解。