如果我们想要将js的错误信息记录到服务器数据库库中,我们一般想到的是通过ajax来实现。
其实这样做有几个弊端:
- 不支持跨域操作,因为很多情况下是一台服务器要负责处理多台服务器的错误;
- 大多数Ajax通信都是通过javascript库提供的包装函数来处理,如果库代码本身就有问题, 而你还在依赖该库记录信息,可想而知,错误消息是不肯能得到记录的。
怎么办?
可以使用Image对象巧妙的解决这个问题。
function logError(sev, msg){
var img = new Image();
img.src = "log.php?sev=" + encodeURIComponent(sev) +
"&msg=" + encodeURIComponent(msg)";
}