【发布时间】:2016-08-20 10:42:19
【问题描述】:
我有一个 ajax POST 请求,这个请求带有引用外部 js 文件的带有<script src=""> 标签的 html,当我在 DOM 中插入这个 html 时,JS 没有加载,我做错了什么?我记得看到这个加载外部 script1 和 script2 没有问题。
请求:
$.ajax({
type: 'POST',
dataType: 'xml/html',
cache: false,
url: "/html/with/scripttags",
data: {somedata:'value'},
success: function(data) {
$('body').append(data)
}
});
内容加载:
<link rel="stylesheet" media="all" href="http://domain.com/application.css" />
<script src='http://domain.com/script.js' type='text/javascript'></script>
<script src='http://domain.com/script2.js' type='text/javascript'></script>
<script type='text/javascript'>alert('executed')</script>
<div>BLAALBLABLAB</div>
但是脚本标签中的警报执行没有问题,application.css 外部文件加载没有问题。看起来 jQuery 没有加载文件,我也检查了网络选项卡..
【问题讨论】:
-
这是我的猜测,但也许 dataType 应该是“脚本”。此外,如果我正确理解问题,这个 jQuery 方法会很有帮助 - api.jquery.com/jquery.getscript。另外,看看类似的问题stackoverflow.com/questions/950087/…。
-
不,这是正常行为
-
@Korgrue 没有。 OP 正在尝试加载 HTML 的 single 块。获取内容是异步的无关紧要,因为失败发生在 ajax 调用完成之后。
-
只是想知道:您如何验证外部 script.js 是否未加载?...您是否尝试在某些测试页面中加载?
-
“我还检查了网络选项卡” 是否请求
script.js、script2.js?
标签: javascript jquery html css ajax