jQuery Ajax在不同版本的Internet Explorer上无法正常工作

3

以下代码在Internet Explorer 9和10上可以正常工作,但在Internet Explorer 7和8上没有结果。

$.ajax({
    url: url,
    cache: false,
    async: true,
    success: function(req, textStatus, obj) {
    },
    error: function(req, error, exc) {
        alert(req.responseText);
    } 
});

Ajax请求调用的URL结果为:
<?xml version="1.0"?>
<BRILJANT>
    <VP>
        <NETTOVP>45,4545</NETTOVP>
        <NETTOVPINCL>55</NETTOVPINCL>
        <BRUTOVP>45,4545</BRUTOVP>
        <BRUTOVPINCL>54,9999</BRUTOVPINCL>
        <ORIVP>55,43</ORIVP>
        <ORIVPINCL>67,0703</ORIVPINCL>
        <KORTING1>0</KORTING1>
        <KORTING2>0</KORTING2>
        <SOORTPRIJS>P</SOORTPRIJS>
    </VP>
    <TEL>
        <VOORRAAD>0</VOORRAAD>
        <INBACKLEV>0</INBACKLEV>
        <INBACKKLA>6</INBACKKLA>
        <CONSIGN>0</CONSIGN>
        <MAGCTRL>0</MAGCTRL>
        <INPROD>0</INPROD>
        <OPAFLEVER>0</OPAFLEVER>
        <VOORRRES>0</VOORRRES>
        <VOORZPROD>0</VOORZPROD>
    </TEL>
</BRILJANT>

在Internet Explorer 7和8中,即使没有错误消息提到,请求对象内容也是空的。

非常感谢您的任何想法!


1
哪个版本的jQuery? - Jack
现在我正在使用1.7.2版本;当问题出现在“旧版”IE浏览器时,我尝试过1.4.2版本,但结果相同。 - user2166417
2个回答

1
通过添加这行代码,对于低于9版本的Internet Explorer,DOM对象被正确填充!
$.ajax({
    url: url,
    cache: false,
    async: true,
    success: function(req, textStatus, obj) {
        >> if (ie < 9)
        >>    req = $.parseXML(obj.responseText);**
    },
    error: function(req, error, exc) {
        alert(req.responseText);
    } 
});

1

jQuery 2.0 不再支持旧版IE(<9),因此如果您正在使用最新版本,则可能与IE7和8不兼容,因此您应该使用最多1.10版本。 如果您使用的是1.X版本,则提供版本号会很有帮助,因为您可能在使用已知错误的版本。


以防万一有人不知道,1.10 不是指 1.1 而是指十分之一。 - Pluto
现在我正在使用1.7.2版本;当问题出现在“旧版”IE上时,我尝试过1.4.2版本;但结果相同。 - user2166417

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接