即10 ajax post与params不工作

时间:2013-05-28 21:00:18

标签: jquery ajax post internet-explorer-10

我们正在开发一个用于数据操作的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个浏览器的

enter image description here

我还读到这个问题是由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:

我确认浏览器没有运行兼容模式 enter image description here

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

<add name="HttpPost" />
内的Web服务&gt;协议就是我需要做的。我仍然不确定为什么它可以用于ie9,ff和chrome但不适用于safari和ie10

0 个答案:

没有答案