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上。这非常感谢我从未发现过