我们正在开发一个用于数据操作的html5 / jquery应用程序;此应用程序包括http get和http post操作。使用ie版本< 10,ff和chrome,我们的保存/删除/更新操作完美无缺(帖子将对象的信息作为xml发送到服务器进行验证)但是在我们的Windows 10上运行的浏览器中,似乎ajax post操作确实如此不允许数据参数,即。不发送ajax数据。
类似的帖子建议使用
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9" >
和其他变体,但这不起作用。
问题似乎是我们添加以下内容后的问题:
data: {
'lngClassID': 0,
'strAttributes': xmlAsAString,
'strExtendedPar': ""
},
即使数据有1个参数,它也不会通过。一些论坛已经建议它是一个内部的IE10已知问题,但我发现很难相信这是这种情况......这意味着使用IE10的任何人都无法在互联网上的任何页面上发布任何帖子请求?极不可能......
如果我比较开发人员菜单中“网络”标签中的数据,则会显示请求标头100%相同,所有其他信息相同
来自10和9个浏览器的:
我还读到这个问题是由jquery团队提出的,并以“CantFix”标签关闭......
有人有任何解决方案吗?想法?这个真的让我们难过......
修改 ajax请求如下:
DeleteBusinessObject: function (strAttributes, strExtendedPar, fncCallback) {
var webServiceUrl = ServiceAccess.GetRootURL() + "/DeleteBusinessObject";
var promise = $.ajax({
type: "POST",
url: webServiceUrl,
dataType: "xml",
context: this,
data: {
'strAttributes': strAttributes,
'strExtendedPar': strExtendedPar
},
error: this.ManageServerException
});
promise.done(fncCallback);
},
其中strAttributes是一个非常长的字符串,其中包含带有'&lt;'的所有xml数据和'/&gt;'标签转换为ASCII。 POST请求不应该与它们相关联的最大长度,所以我怀疑这是问题所在。奇怪的是,任何使用GET的请求都没有任何问题,因此我认为我真的认为IE 10问题与任何数据参数的POST请求有关吗?
EDIT2:
我确认浏览器没有运行兼容模式
编辑3: 我找到了解决这个问题的方法。事实证明,Web服务协议HttpPost不在web.config文件的协议列表中。只需添加行
<add name="HttpPost" />