Ajax文件加载和<input />文件加载之间的区别?

时间:2016-05-18 15:07:27

标签: javascript html xml

我有一些javascript可以处理和验证一些自定义XML。目前,使用Ajax对文件的引用进行了硬编码:

$.get("test.xml", {}, XmlOnLoad );

当我调试传递给XmlOnLoad的值是#document时,conentTypeapplication/xml

我需要能够加载不同的文件。我发现the code here并尝试调整它,但我遇到了问题。当它传递给XmlOnLoad时,它是file type text/xml。因此,当我使用childNodes()之类的任何XML函数时,它会失败。这是我现在拥有的代码:

function readURL(input) {
    if (input.files && input.files[0]) {
        XmlOnLoad(input.files[0])
    }
}

我可以做些什么来让它成功地作为XML文档处理?

1 个答案:

答案 0 :(得分:1)

您可以尝试将文件转换为blob网址并使用$ .get。

function readURL(input) {
    if (input.files && input.files[0]) {
        $.get(URL.createObjectURL(input.files[0]), {}, XmlOnLoad, 'xml' );
    }
}