jQuery.ajax只能工作一次

时间:2014-11-02 19:24:27

标签: javascript jquery ajax google-chrome-extension

我的Chrome扩展程序的一部分会测试用户是否已连接到互联网。它运行一次完美但运行后,$ .ajax === undefined,我不知道为什么。我没有看到任何可以修改$ .ajax

的setter
var testInternet = function(callback) {
    "use strict";
    var testURLs, doCallback, i, failCount;
    if (! callback) {
        callback = function(){};
    }
    doCallback = true;
    failCount = 0;
    testURLs = [
    "http://clients5.google.com/pagead/drt/dn/dn.js"
    ];
    for (i= 0; i < testURLs.length; i++) {
        testConnection(testURLs[i], function(success){
            if (success && doCallback) {
                doCallback = false;
                callback(true);
                return;
            } else {
                failCount += 1;
                if (failCount === testURLs.length) {
                    callback(false);
                    return;
                }
            }
        });
    }
}

var testConnection = function(url, callback) {
    "use strict";
    $.ajax({
        url: url,
        timeout: 10000,
        cache: false,
        success: function(data) {
            callback(true);
            return;
        },
        error: function(data) {,
            callback(false);
            return;
        }
    });
}

1 个答案:

答案 0 :(得分:1)

看起来因为你得到一个.js文件,jQuery自动默认dataTypescript,这将导致jQuery评估正在加载的脚本。指定dataType: 'text'可以防止这种不受欢迎的行为。