Jquery Google Chrome扩展-未触发AJAX回调

Jquery Google Chrome扩展-未触发AJAX回调,jquery,ajax,google-chrome,google-chrome-extension,Jquery,Ajax,Google Chrome,Google Chrome Extension,我正在构建一个简单的Chrome扩展,并尝试在更新选项卡后运行Ajax请求。简单地说,每次访问新域时,都会检查该域是否受支持 我对Ajax回调有问题;它从未开火过。成功、错误或完成,都不会被激发。具体来说,这是在chrome.tabs.onUpdated.addListener回调中发出Ajax请求时。因此,下面的方法不起作用: background.js: chrome.tabs.onUpdated.addListener(function(tabid, changeInfo, tab) {

我正在构建一个简单的Chrome扩展,并尝试在更新选项卡后运行Ajax请求。简单地说,每次访问新域时,都会检查该域是否受支持

我对Ajax回调有问题;它从未开火过。成功、错误或完成,都不会被激发。具体来说,这是在chrome.tabs.onUpdated.addListener回调中发出Ajax请求时。因此,下面的方法不起作用:

background.js:

chrome.tabs.onUpdated.addListener(function(tabid, changeInfo, tab)
{
    test();
});

function test()
{
    $.ajax(
    {
        url: 'http://exampledomain.com/check.php',
        type: 'post',
        dataType: 'JSON',
        data: {domain: 'test'},
        error: function(jqXHR, textStatus, errorThrown)
        {
            console.log(jqXHR);
            console.log(textStatus);
            console.log(errorThrown);
        },
        success: function(data, textStatus, jqXHR)
        {
            console.log(data);
        },
        complete: function(jqXHR, textStatus)
        {
            console.log(jqXHR);
            console.log(textStatus);
        }
    });
}
但是,如果在侦听器外部调用test(),则会触发回调

如果我在dev工具中检查网络,则每个请求都是成功的,服务器返回预期的响应。但是,如果从侦听器回调中调用Ajax,则永远不会捕获响应

为清楚起见,清单如下:

{
    "manifest_version": 2,

    "name": "Test Extension",
    "description": "Extension Description",
    "version": "1.0",

    "browser_action": {
        "default_icon": "icon.png",
        "default_popup": "popup.html",
        "default_title": "Popup Title"
    },
    "permissions": [
        "storage",
        "tabs",
        "notifications",
        "http://exampledomain.com/"
    ],
    "background": {
        "scripts": ["jquery.min.js", "background.js"],
        "persistent": true
    }
}

您可以尝试使用fetch,或者如果它在其他扩展api侦听器中工作,则可以使用它。@DanielHerr感谢您的回复。Fetch显然是我可以使用的一个很好的选择。我将保留这个问题,因为我真正感兴趣的是为什么会出现这个问题。它是否发生在其他chrome扩展api侦听器中?@DanielHerr刚刚用chrome.storage.sync.get快速测试了一下,是的,Ajax请求似乎工作得很好。回调正在运行。您可以尝试使用fetch,或者如果它在其他扩展api侦听器中有效的话。@DanielHerr谢谢您的回复。Fetch显然是我可以使用的一个很好的选择。我将保留这个问题,因为我真正感兴趣的是为什么会出现这个问题。它是否发生在其他chrome扩展api侦听器中?@DanielHerr刚刚用chrome.storage.sync.get快速测试了一下,是的,Ajax请求似乎工作得很好。正在运行回调。