javascript - 如何捕获浏览器阻止的 XMLHttpRequest?

标签 javascript jquery ajax

我使用 jQuery ajax 来执行请求,但有时它会被浏览器阻止(即,当我的网站通过 https 运行并尝试对 http 资源进行外部调用时)。

我使用此代码来发出请求

    jQuery.ajax({
        url:    videoCallString,
        success: function(result) {
            //...if it isn't, we can't playback the video so skip next slide
            if (result != 1) {
                console.log('found no video_check on localhost so skip slide '+self.nextSlide);
                self.skip();                
            }
            else {
                //success, proceed as normal
                self.beforeComplete();
            }
        }, /*
        fail: function() {
                console.log('found no video_check on localhost so skip slide '+self.nextSlide);
                self.skip();
        }, */
        complete: function(xhr, data) {
            if (xhr.status != 200) {
                //we could not find the check-video file on localhost so skip next slide
                console.log('found no video_check on localhost so skip slide '+self.nextSlide);
                self.skip();                        
            }
            else {
                //success, proceed as normal
                self.beforeComplete();
            }
        }, //above would cause a double-slide-skip, I think. Removed for now, that should be trapped by the fail clause anyways.
        async: true
    });

但是,如果请求被阻止,则不会触发这些事件。

如果我没有注释掉失败事件,它会触发吗?我这样做是因为否则我会得到双重skip(),这是非常不可取的......

最佳答案

就我的测试而言,这是不可能做到的。

在我的例子中,我使用了一个窗口变量来指示页面是否加载了 chrome 标志以允许这种类型的调用,并且仅在允许的情况下执行 ajax 调用。否则,我只是跳过整个 ajax 调用并转到与失败调用相同的结果。

关于javascript - 如何捕获浏览器阻止的 XMLHttpRequest?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29042794/

相关文章:

javascript - 如何使用 .on click 事件以 4 个按钮作为触发器更改图像

javascript - 如何在 CodeIgniter 中创建自动完成搜索字段?

javascript - Cypress Javascript 中的返回值未定义

javascript - 将复杂类型传递给 Bootstrap 模式

jquery - 将类添加到单击的元素

javascript - 如何将剪贴板中的富文本粘贴到 HTML textarea 元素?

javascript - ajax返回数据的最大大小

javascript - (由于 Chrome 53 问题)Yahoo weather api 得到了一个不安全的证书,导致 jquery ajax 请求失败

javascript - 在 javascript 中过滤和统计 json 属性

Javascript - 从数组中查找所有类,从类中获取并返回内部文本