相关疑难解决方法(0)

避免浏览器弹出窗口阻止程序

我正在开发纯粹在JavaScript中的OAuth身份验证流程,我想在弹出窗口中向用户显示"授予访问权限"窗口,但它会被阻止.

如何防止由不同浏览器的弹出窗口阻止程序阻止弹出窗口window.open或被window.showModalDialog其阻止?

javascript modal-dialog popup popup-blocker

161
推荐指数
7
解决办法
19万
查看次数

如何阻止jQuery.ajax()将失败记录到控制台?

我使用以下jQuery JSONP请求通过URL检查资源的状态.当资源不可用或服务器关闭时,我的ajaxFail()功能会更新显示.

function fetchServerStatus(service, host)
{
    var port = serverStatus[service].port;
    $.ajax({
        url: "http://" + host + ":" + port + "/admin/server/status",
        dataType: "jsonp",
        timeout: 1000,
        error: ajaxFail,
        fail: ajaxFail,
        success: ajaxDone,
        done: ajaxDone,
        complete: ajaxAlways,
        always: ajaxAlways
    });
}
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是,尽管声明了处理程序,fail并且error没有将任何内容记录到控制台,jQuery总是在控制台中记录失败的请求.如果资源长时间不可用,则会构建一个巨大的控制台日志,最终导致浏览器进程崩溃(在我的情况下为Chrome).

有没有办法阻止它这样做?

javascript jquery google-chrome

32
推荐指数
1
解决办法
2万
查看次数

在chrome dev工具中隐藏401 console.error,在fetch()调用中获取401

我有一些代码在哪里进行提取调用.这利用了现代chrome/firefox中内置的window.fetch api.

代码有时会遇到401:未经授权的响应.这是正常的,我希望它被忽略,我可以用代码的流程做.但是,当我尝试运行它时,Chrome确实会显示一个难看的console.error消息.

我如何编程地防止此控制台错误显示在所有计算机上的开发控制台中(即,没有chrome dev过滤器或tampermonkey类型插件).

这是一个可以解决的样本:

fetch("http://httpstat.us/401", {requiredStatus: 'ok'})
    .then(function() {
        console.log("pass!");
    }).catch(function() {
        console.log("fail!");
    });
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

javascript xmlhttprequest fetch-api

27
推荐指数
1
解决办法
7085
查看次数

如果服务器出现故障,如何捕获浏览器抛出的ERR_CONNECTION_REFUSED?

我认为这个问题非常简单,但我还没有在官方的Socket.io文档中找到答案.

我有我的Socket.io服务器和客户端成功通信,当我关闭服务器时,客户端将尝试重新连接服务器失败.这在Chrome开发人员的控制台中显示:

在此输入图像描述

有没有办法在客户端Javscript中检测此事件并以某种方式对其做出反应?我想我会在页面上显示一个对话框,例如"抱歉,服务器负载很重"等.

javascript node.js socket.io

24
推荐指数
1
解决办法
1万
查看次数

JavaScript 获取 ERR_CONNECTION_REFUSED 与 TypeError 无法获取

使用 JavaScript fetch API 时,浏览器控制台会记录 错误ERR_CONNECTION_REFUSED,但fetch 块会返回服务器离线时catch的消息。TypeError Failed to fetch

例子

以下最小提取突出显示了两个错误消息:

fetch("https://localhost/get-something", {
    method: "POST"
}).then(resp => {
    console.log(resp)
}).catch(err => {
    console.log("ERR:", err, err.name, err.message)
})
Run Code Online (Sandbox Code Playgroud)

运行fetch时,浏览器的控制台会出现两个错误:

POST https://localhost/get-something net::ERR_CONNECTION_REFUSED
Run Code Online (Sandbox Code Playgroud)

ERR: TypeError: Failed to fetch
// err.message will be "failed to fetch"
Run Code Online (Sandbox Code Playgroud)

来自 catch 块的通用failed to fetch消息会在服务器关闭以外的实例中返回。我对浏览器的控制台错误更感兴趣ERR_CONNECTION_REFUSED

问题

有没有办法捕获ERR_CONNECTION_REFUSED失败的提取调用中的值?

javascript typeerror fetch-api

6
推荐指数
1
解决办法
1189
查看次数

检查 WebSocket 服务器是否可用而不会出错

我的网络应用程序需要定期检查服务器是否已启动。这允许用户以任一顺序启动服务器和客户端。

为此,我只是WebSocketsetTimeout处理程序内部调用构造函数。

从使用的角度来看,这种策略效果很好,但对我开发人员来说很烦人,因为我在 Chrome 中看到很多控制台错误:

remote.html:194 WebSocket connection to 'ws://localhost:8082/' failed: Connection closed before receiving a handshake response
remote.html:194 WebSocket connection to 'ws://localhost:8082/' failed: Connection closed before receiving a handshake response
remote.html:194 WebSocket connection to 'ws://localhost:8082/' failed: Connection closed before receiving a handshake response
Run Code Online (Sandbox Code Playgroud)

这些并不是真正的错误,因为我的 Web 应用程序在服务器不可用的情况下完全没问题。它重复调用WebSocket构造函数(MDN)只是为了检查服务器是否已经启动。

有一个更好的方法吗?对于上下文,我的 Web 应用程序是在设备上运行的本机 C++ 应用程序的“远程控制”。

javascript browser websocket

3
推荐指数
1
解决办法
220
查看次数