Javascript 我试图在我的项目中运行FileReader函数,结果出现了我不理解的错误:

Javascript 我试图在我的项目中运行FileReader函数,结果出现了我不理解的错误:,javascript,ajax,xml,Javascript,Ajax,Xml,我必须用AJAX做一个练习。我必须使用本地文件,我放在我的电脑本地和我的程序要求选择这个文件。文件名为“ledevoir.xml” 当我执行程序时,通过选择本地文件ledevoir.xml,我得到以下错误: 未能对“FileReader”执行“readAsText”:参数1不是“Blob”类型 这是我的密码: <?xml version="1.0" encoding="ISO-8859-1" ?> <html xmlns="http://www.w3.org/1

我必须用AJAX做一个练习。我必须使用本地文件,我放在我的电脑本地和我的程序要求选择这个文件。文件名为“ledevoir.xml”

当我执行程序时,通过选择本地文件ledevoir.xml,我得到以下错误:

未能对“FileReader”执行“readAsText”:参数1不是“Blob”类型

这是我的密码:

    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>

    <title>Exemple AJAX</title>

    <script language="JavaScript">
    function afficheTitres(doc) {
         titres = doc.getElementsByTagName("title");
         elementol = document.createElement("ol");
         var longueur = titres.length;
         for ( k = 0; k &lt; longueur ; ++k) {
           elementli = document.createElement("li");
           elementli.appendChild(document.createTextNode(titres[k].firstChild.nodeValue));
           elementol.appendChild(elementli);
         }
         body = document.getElementsByTagName("body").item(0);
         body.appendChild(elementol);
    }

    function chargeDocument(f) {
            var fileReader = new FileReader();
            fileReader.onload = function(evt) {
               var doc = new DOMParser().parseFromString(this.result, 'application/xml');
               afficheTitres(doc);
            }
            fileReader.readAsText(f);
    }

    </script>
    </head>
    <body>
      <p>Récupère et affiche
      les nouvelles du devoir: </p>
    <input type="file" onchange="chargeDocument(this.files)" ></input>

    </body>
    </html>

例如AJAX
功能附件(doc){
titres=doc.getElementsByTagName(“title”);
elementol=document.createElement(“ol”);
var longueur=滴定度长度;
对于(k=0;k longueur;++k){
elementli=document.createElement(“li”);
elementli.appendChild(document.createTextNode(titres[k].firstChild.nodeValue));
elementol.appendChild(elementli);
}
body=document.getElementsByTagName(“body”).item(0);
附体儿童(elementol);
}
职能文件(f){
var fileReader=newfilereader();
fileReader.onload=函数(evt){
var doc=new DOMParser().parseFromString(this.result,'application/xml');
附页(doc);
}
fileReader.readAsText(f);
}
Récupère et affiche
德维尔新村:

我不明白我犯了什么错误。你能帮我吗?

你打电话来吗

chargeDocument(this.files)

传递所选文件,因此
函数chargeDocument(f)
中的参数
f
是一个数组,而不是单个文件。错误只是说数组没有函数
readAsText

相反,只需传递文件数组的第一个条目:

<input type="file" onchange="chargeDocument(this.files[0])"></input>