jQuery Ajax不适用于每个版本的Internet Explorer

时间:2013-05-30 21:01:41

标签: jquery ajax internet-explorer

以下代码在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中,即使未提及错误消息,请求对象内容也为空。

任何想法都很受欢迎!

2 个答案:

答案 0 :(得分:1)

jQuery 2.0放弃了对oldIE(&lt; 9)的支持,因此如果您使用的是最新版本,则可能与IE7&amp; 8所以你最多应该使用1.10版本。如果您使用的是1.X版本,则提供版本会很有帮助,因为您可能正在使用具有已知错误的版本。

答案 1 :(得分: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);
    } 
});