XMLHttpRuquest cannot load

来源:9-7 图表组件页整合开发(二)

尼克1999

2017-07-24

把图表组件的名称储存在一个数组中,然后生成jquery的DOM对象,全部append到$("<head>")里面,然后在Safari中可以加载出来,只不过不是js资源,而是XML资源。

然而在chrome和firefox中,XML资源加载不出来,出现了“XMLHttpRuquest cannot load”以及“XMLHttpRuquest已不推荐使用,因其对终端用户的用户体验存在负面影响”,然后整个页面只能加载到使用XML资源之前。

这样子做为什么会把js资源变成XML资源呢?为什么document.write(字符串)就能正确加载出js资源?



写回答

1回答

秋水

2017-07-26

因为你append到head里面的时候,整个页面已经加载完成了,如果你学过后端相关的知识,就知道加载一个完整页面前,每一个http请求都会先发送一个header,header里面包含你需要请求的数据类型,例如,你要请求打开一个PDF文件,首先发送一个header("Content-type:application/pdf"),而且在发送任何数据之前,都必须先发送header。现在你的dom结构已经载入完成了,要加载新的js资源,就变成异步请求了,因此会告诉你XMLHttpRequest cannot load,XMLHttpRequest对象本身就是Ajax对象,但是你并没有配置正确的Ajax请求,所以加载失败。而使用document.write的时候,只要文档扫描到js代码部分就会立即执行,就能同时再加载资源了。

0
0

Web App用组件方式开发全站

用HTML5/CSS3/JS流行技术,实现移动端可视化数据报告

3164 学习 · 516 问题

查看课程