首页 > 解决方案 > 未捕获的类型错误:无法在 XMLHttpRequest.ajax.onreadystatechange 处读取 null 的属性“innerHTML”

问题描述

我不知道为什么这个错误不断弹出,有时代码可以正常工作,有时不能,我会得到那个非常烦人的错误

var ajax=new XMLHttpRequest();
                    var method="GET";
                    var url="getMessages.php";
                    var asynchronous=true;
                    ajax.open(method, url,asynchronous);
                    ajax.send();
                    ajax.onreadystatechange=function(){
                        if(this.readyState==4 && this.status==200){
                          var data=JSON.parse(this.responseText);
                           console.log(data);
                           var html="";
                           for(var b=0;b<data.length;b++){
                               var ID=data[b].ID;
                               var name=data[b].name;
                               var email=data[b].email;
                               var subject=data[b].subject;
                               var message=data[b].message;
                               var link = `management.php?delete=${ID}`;
                                 html +="<tr>";
                                 html +=`<td><a href='${link}'>Delete</a></td>`;
                                 html +="<td>" + name + "</td>";
                                 html +="<td>" + email + "</td>";
                                 html +="<td>" + subject + "</td>";
                                 html +="<td>" + message + "</td>";
                                html +="</tr>";
                               

                           }
                           document.getElementById("messages").innerHTML += html;
                           
                        } 
                    }
       

标签: javascriptajax

解决方案


如果不显示 HTML 或最小的工作示例,您将无法完全清楚您在做什么。- 根据您提供的内容,我的猜测是,由于您的初始值您var html=""收到了错误。

如果 html 为空,请检查您的代码以添加默认值,或者只是给它一个默认值。

例子:

if (html === "") {
html = //something
}

推荐阅读