javascript - 从 AJAX 请求加载时未执行的 Javascript 文件
问题描述
我正在通过 AJAX 加载页面,然后将加载的内容粘贴到 IFRAME 中。我这样做是因为我使用的是在加载时修改数据的授权令牌。但是我遇到了一个奇怪的情况,即没有加载 Javascript 文件。
让我们一天的页面是:
索引.html
<html>
<body>
Hello World
</body>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js">
<script>
moment().format('MMMM Do YYYY, h:mm:ss a')
</script>
</html>
现在,如果我运行通常通过浏览器加载的类似内容,它就可以工作了!但是让我们通过 AJAX 加载它并将其输入到 IFrame 中:
let xhr = new XMLHttpRequest();
let token = 'someToken';
xhr.open('GET', 'index.html');
xhr.onreadystatechange = function() {
if (this.readyState === this.DONE) {
if (this.status === 200) {
// this.response is a Blob, because we set responseType above
var data_url = URL.createObjectURL(this.response);
let ifrm = document.createElement('iframe');
ifrm.setAttribute("src", data_url);
ifrm.style.width = "100%";
let someElement = document.getElementByID('someID')
someElement.appendChild(ifrm);
}
}
};
xhr.responseType = 'blob';
xhr.setRequestHeader('Authorization', token);
xhr.send();
我会收到诸如“时刻未定义”之类的错误。在我的实际站点中,我有其他 javascript 文件,但它们都没有加载。为什么通过 AJX 请求加载页面时会发生这种情况?
解决方案
推荐阅读
- flutter - 无法识别在子类型上定义的 Dart 扩展方法
- swift - Swift 5 链接两个不同的 .plist 文件
- python - 使用python在html中的子字符串周围放置标签
- java - 在模块 core-1.1.0-runtime.jar 中找到重复的类 android.support.v4.app.INotificationSideChannel
- database - 如何编辑/修改或更改计划的每日 csv 文件上传到 Data Studio 的数据?
- ios - tabBarController 选择的索引在 viewController [Swift] 中不起作用
- reactjs - 使用更新不可变助手我得到 eslint 错误:在引用前一个状态时在 setState 中使用回调
- laravel - Laravel:从单个路由中删除“api”前缀
- firebase - 类颤振中未定义方法'SignInWithTwitter
- javascript - 我想根据悬停事件将动画选项卡添加到网格元素