Javascript 使用jQuery.ajax获取脚本时引发语法错误
我有以下代码:Javascript 使用jQuery.ajax获取脚本时引发语法错误,javascript,jquery,ajax,syntax-error,impactjs,Javascript,Jquery,Ajax,Syntax Error,Impactjs,我有以下代码: $.ajax({ beforeSend: function () { console.log("fetching script"); }, url: "../../../scripts/review-level-" + ig.game.currentLevel.toString() + ".js", dataType: "script", type: "GET", success: function (script)
$.ajax({
beforeSend: function () {
console.log("fetching script");
},
url: "../../../scripts/review-level-" + ig.game.currentLevel.toString() + ".js",
dataType: "script",
type: "GET",
success: function (script) {
console.log(reviewFunc());
},
error: function (jqXHR, textStatus, errorThrown) {
console.log(errorThrown);
}
});
我正在尝试使用jQuery.ajax获取脚本,我还尝试了速记函数$.getScript()
,并且我得到了一个SyntaxError
,作为error
参数中的error抛出的,即使在chrome开发者工具的“网络”选项卡下,脚本显示为已成功获取,状态代码为200。
以下是我正在获取的脚本:
function reviewFunc() {
var overlay = ig.game.spawnEntity("EntityInfooverlay", 0, 0, {
msg: {
status: true,
message: "Question #1:",
counterOut: 0
}
});
console.log("reviewFunc Finished");
return overlay;
}
我看不到任何语法错误,所以我有点不知所措。如果有人看到任何我不知道或以前遇到过的东西,我将不胜感激。使用一些原始javascript可能更容易调试:
loadScript("../../../scripts/review-level-" + ig.game.currentLevel.toString()
+ ".js", function() { reviewFunc(); });
function loadScript(src, callback)
{
var s, r;
r = false;
s = document.createElement('script');
s.type = 'text/javascript';
s.src = src;
s.onload = s.onreadystatechange = function() {
if ( !r && (!this.readyState || this.readyState == 'complete') )
{
r = true;
callback();
}
};
document.body.appendChild(s);
}
编辑
已找到解决方案。已更新代码。。它实际上应该是console.log(reviewFunc())
因为reviewFunc()是正在获取的脚本中的一个函数,并且当定义了类型:“script”
或使用缩写$时。getscript()
应该在全局级别读取和评估整个脚本,以便您可以从其他脚本访问它。有趣的是我有同样的东西(使用缩写$.getScript()
,在我的代码的另一个模块中调用了两个其他脚本,但当我尝试复制它时,它工作得很好,但失败了。我能想到的唯一一件事是,可能脚本还没有实际加载,你可以尝试在GET
中指定async:false,
。好吧,这给了我一些新的东西,这给了我一个意想不到的Token非法
我在第2行获取的脚本出现错误。你认为它指的是什么?我在那里没有看到任何非法字符(op中的第二个代码块)thanksCheck out:这也发生在我身上,通常是在JSFIDLE上。这非常感谢我从未发现过