1

我们正在开发一个用于数据操作的 html5/jquery 应用程序;此应用程序包括 http get 和 http post 操作。使用 ie 版本 < 10、ff 和 chrome,我们的保存/删除/更新操作完美无缺(帖子将对象的信息作为 xml 发送到服务器进行验证),但是在我们运行在 windows 8 上的 ie 10 浏览器中,看起来像ajax post 操作不允许数据参数,即。不发送ajax数据。

类似的帖子建议使用

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9" >

和其他变体,但这不起作用。

一旦我们添加以下内容,问题似乎就出现了:

data: {
            'lngClassID': 0,
            'strAttributes': xmlAsAString,
            'strExtendedPar': ""
        },

即使数据有 1 个参数,它也不会通过。一些论坛建议这是一个内部 IE10 已知问题,但我很难相信这是这种情况......这意味着任何使用 IE10 的人都不能在互联网上的任何页面上发出任何帖子请求?不大可能...

如果我比较开发人员菜单中“网络”选项卡中的数据,它表明请求标头是 100% 相同的,并且所有其他信息都是相同的

来自 ie 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 是一个非常长的字符串,其中包含所有带有“<”和“/>”标记的 xml 数据,这些数据都转换为 ASCII。POST 请求不应该与它们关联的最大长度,所以我怀疑这是问题所在。奇怪的是,任何使用 GET 的请求都可以正常工作,所以我相信它真的是带有任何数据参数的 POST 请求的 IE 10 问题?

编辑2:

我确认浏览器没有运行兼容模式 在此处输入图像描述

编辑 3: 我找到了解决这个问题的方法。事实证明,Web 服务协议 HttpPost 不在 web.config 文件的协议列表中。只需添加行

<add name="HttpPost" />

在 WebServices > Protocols 中我需要做的就是。我仍然不确定为什么它可以在 ie9、ff 和 chrome 上工作,但不能在 safari 和 ie10 上工作

4

0 回答 0