相关疑难解决方法(0)

HTTP状态代码0是否有任何意义?

看来,当您从浏览器中的脚本创建XMLHttpRequest时,如果浏览器设置为脱机工作或者拔出网络电缆,请求将以错误完成并且状态为0. 0未列为允许HTTP状态代码.

状态代码0是什么意思?所有浏览器和所有HTTP客户端实用程序的含义是否相同?它是HTTP规范的一部分还是其他协议规范的一部分?这似乎意味着根本无法进行HTTP请求,可能是因为服务器地址无法解析.

显示用户的错误消息是什么?"要么您没有连接到互联网,要么网站遇到问题,或者地址中可能存在输入错误"?

我应该补充一点,当我设置为"脱机工作"时,我会看到FireFox中的行为,但是当设置为"脱机工作"时,我看不到Microsoft Internet Explorer中的行为.在IE中,用户获得一个对话框,提供上线选项.FireFox在返回错误之前不会通知用户.

我问这是为了回应"显示更好的错误消息"的请求.Internet Explorer的功能很好.它告诉用户导致问题的原因并为他们提供修复问题的选项.为了给FireFox提供一个等效的UX,我需要推断出问题的原因并通知用户.那么总共可以从状态0推断出什么呢?它有普遍意义还是什么都没告诉我?

browser ajax http xmlhttprequest

89
推荐指数
4
解决办法
11万
查看次数

jQuery AJAX错误处理(HTTP状态代码)

我们有一个API,它使用正确的HTTP状态代码来处理错误,并使用JSON编码的响应和适当的Content-Type标头进行响应.我的情况是,当它遇到HTTP错误状态而不是回调时jQuery.ajax()触发回调,所以即使我们有一个可理解的JSON响应,我们也必须求助于这样的事情:errorsuccess

$.ajax({
    // ...
    success: function(response) {
        if (response.success) {
            console.log('Success!');
            console.log(response.data);
        } else {
            console.log('Failure!');
            console.log(response.error);
        }
    },
    error: function(xhr, status, text) {
        var response = $.parseJSON(xhr.responseText);

        console.log('Failure!');

        if (response) {
            console.log(response.error);
        } else {
            // This would mean an invalid response from the server - maybe the site went down or whatever...
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

是否有更好的范例,而不是在每次jQuery.ajax()通话中的两个位置进行相同的错误处理?它不是很干,而且我确信在这些情况下,我错过了一些关于良好错误处理方法的内容.

ajax error-handling jquery

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

在jQuery和AJAX中绕过SSL证书错误

我是jQuery/AJAX的新手.我有一个小应用程序来测试pupose,它上面有一个按钮.单击该按钮时,将连接到位于同一域中的服务器以获取某些数据并发出警报.

问题:我的应用程序无法与服务器建立任何连接.以下屏幕截图来自Google Chrome中的开发人员工具.

eror

服务器有自己的自签名证书.如果我通过Web浏览器连接到服务器,我会收到SSL证书警告,如下所示.

SSL错误

如果我单击继续然后登录到服务器,此后我的应用程序也能够从服务器中恢复数据.(如果我单击我的Web应用程序上的按钮,它会提醒它从服务器获取的数据.)

问题:有没有解决方法,我可以绕过此错误吗?一旦我通过网络浏览器登录服务器,为什么它可以正常工作?我的应用将在本地使用,并且不是公共应用.

jQuery代码:我有这个代码:

$('#mybutton').click(function(){
    $.ajax({
        type: "GET",
        url: "https://192.168.150.33/Api/loc?jsonpCallback=myCallback",
        dataType:"jsonp",
        async: false,
        beforeSend: function (request){
            request.withCredentials = true;
            request.setRequestHeader("Authorization", "Basic " + btoa('admin' + ":" + 'password'));
            },
        success: function(response){
                alert('hi');
            },
    });
});
function myCallback(response){
        data= JSON.stringify(response)
        alert(data)
Run Code Online (Sandbox Code Playgroud)

是一篇解决同一问题的帖子.据我所知,根据它的帖子,没有解决方案.任何建议都会有所帮助.谢谢

ajax ssl jquery

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

为什么我的 Axios 实例在捕获的错误中不返回响应?

我目前正在开展一个项目,为 Udemy 讲师 API 创建客户端。

\n\n

我已经用 Vue 编写了客户端,使用 Axios 作为我的 HTTP 客户端。

\n\n

我将不同的 API 请求抽象为 ES6 化的 API 包装库 ( Udemy.js) 中的函数,以便可以轻松地重用它们。

\n\n

Udemy.js首先初始化 Axios 的实例,然后按照 Promise 导出使用该实例作为基础的 API 函数。

\n\n

下面摘自该文件,但为了便于阅读,我已经删除了模块导出的除其中一个函数之外的所有函数(并且显然编辑了 API 令牌)。端点 URI 包含“message-threadsssss”\xe2\x80\x94,这是故意的,以导致服务器返回 404:

\n\n

\r\n
\r\n
import axios from \'axios\';\r\n\r\nconst token = \'***************************\';\r\nconst axiosOptions = {\r\n  baseURL: \'https://www.udemy.com/instructor-api/v1\',\r\n  timeout: 10000,\r\n  headers: {\r\n    Accept: \'*/*\',\r\n    \'Content-Type\': \'application/json;charset=utf-8\',\r\n    Authorization: `Bearer ${token}`,\r\n  },\r\n};\r\n\r\nconst axiosInstance = axios.create(axiosOptions);\r\n\r\nexport default {\r\n  postMessage(messageThreadId, messageBody) {\r\n    return axiosInstance\r\n            .post(`/message-threadssss/${messageThreadId}/messages/`, {\r\n …
Run Code Online (Sandbox Code Playgroud)

javascript promise vue.js axios es6-modules

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