AJAX调用未完成,因为弹出窗口关闭

时间:2011-06-23 16:05:33

标签: javascript ajax google-chrome google-chrome-extension

我在弹出窗口中点击按钮时使用some AJAX calls

var xhr = new XMLHttpRequest();
xhr.open("GET", yourURL, true);
xhr.send();
chrome.tabs.create({url:<some url here>});

问题是单击按钮后弹出窗口会立即关闭,我认为这就是为什么ajax调用没有完成。

这是一个常见问题吗?我该怎么做才能确保ajax调用有足够的时间来完成?

2 个答案:

答案 0 :(得分:2)

这是为背景页面制作的。将代码移动到背景页面中的某些myFunction(),然后从弹出窗口中调用它:

chrome.extension.getBackgroundPage().myFunction()

答案 1 :(得分:0)

请求完成后需要回调。

var xhr = new XMLHttpRequest();
xhr.open("GET", yourURL, true);
xhr.onreadystatechange = function() {
    if (xhr.readyState===4 && xhr.status===200) {
        chrome.tabs.create({url:<some url here>});    
    }
}
xhr.send();