对于包含Internet Explorer中无效字符的XML,Ajax GET请求返回“parsererror”

时间:2017-04-27 11:27:18

标签: javascript jquery ajax xml

我有一个应用程序,它读取XML文件并将其解析为数据结构。 XML大部分时间都很好。有时,XML会在其中包含无效字符(即不间断的空格)。此代码适用于Chrome和Firefox。但是,它一直在Internet Explorer中返回parsererror(在IE11中测试)。这个问题有解决方法吗?

$.ajax({
    type: "GET",
    url : path,
    dataType: "xml",
    success: parseXml,
    complete: setupAC,
    error: function(err,status,error) {
        alert("Error reading XML File: "+(status));
    }
});

1 个答案:

答案 0 :(得分:0)

您可以使用在try / catch块中包装parseXml的succes函数,因为error函数只处理请求生成的错误,而不是请求成功处理程序。

$.ajax({
    type: "GET",
    url : path,
    dataType: "xml",
    success: function( xml ) {
        var data = null;
        try {
            data = parseXml( xml );
        }
        catch ( error ) {
            // handle error in some other way if needed.
        }
        setupAC( data );
    },
    error: function(err,status,error) {
        alert("Error reading XML File: "+(status));
    }
});

然后只需在setupAC()中添加一个后卫,以便它可以处理空值。 或者只是在succes处理程序中执行整个错误处理,并让setupAC知道它不会以有效输入运行。