相关疑难解决方法(0)

使用jQuery中止Ajax请求

使用jQuery,如何取消/中止我尚未收到响应的Ajax请求

javascript ajax jquery

1775
推荐指数
17
解决办法
57万
查看次数

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万
查看次数

HTTP状态码0 - 错误域= NSURLErrorDomain?

我正在开发一个iOS项目.

在此应用程序中,我正在从服务器下载图像.

问题:

在下载图像时,我收到请求超时.根据文档HTTP请求超时的状态代码是408.

但在我的应用程序中,我收到HTTP状态代码0,出现以下错误

错误域= NSURLErrorDomain代码= -1001"请求超时." UserInfo = 0xb9af710 {NSErrorFailingURLStringKey = http://xxxx.com/resources/p/PNG/1383906967_5621_63.jpg,NSErrorFailingURLKey = http://xxxx.com/resources/p/PNG/1383906967_5621_63.jpg,NSLocalizedDescription =请求超时.,NSUnderlyingError = 0x13846870"请求超时."}

在搜索期间,通过互联网,我找不到有关HTTP状态代码0的信息.

任何人都可以向我解释这个吗?

http download http-status-codes nserror

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

使用https $ http请求状态0

情况:

我正在开发一个从API接收数据的Ionic应用程序.

之前,API在http://地址上,一切正常.

然后我们将API移动到https://并且它不再起作用了.或者,它仍然可以在浏览器中访问它,但不能在手机(或模拟器)中访问它.

我不确定可能是什么问题.在控制台日志中,我看到请求的状态为0.

它可能与白名单,标题或CORS有关.我尝试了几种方法但没有效果.

白名单:

在config.xml之前有这个白名单:

<allow-navigation href="http://*/*" /> 
Run Code Online (Sandbox Code Playgroud)

我曾尝试以多种方式修改它,但这并没有解决问题.例如,我尝试过:

<allow-navigation href="https://*/*" /> 
Run Code Online (Sandbox Code Playgroud)

<allow-navigation href="*" />
Run Code Online (Sandbox Code Playgroud)

API请求:

这是API请求的一个示例:

$http.get( 'https://MY_DOMAIN.com/mobile/list_mobile_project/' ,{},{"headers" : {"Content-Type" : "application/x-www-form-urlencoded; charset=UTF-8" }})
     .success(function(data, status, headers, config) 
     {
             // code
     }).
     error(function(data, status, headers, config) 
     {
         console.log('Error with the API list_mobile_project');
         console.log(data);
         console.log(status);
         console.log(headers);
         console.log(config);
     });
Run Code Online (Sandbox Code Playgroud)

API响应:

这是API响应的一个例子:

public function list_mobile_project()
{
    header('Access-Control-Allow-Origin: *');
    header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept"); 

    // code

    echo json_encode( $project_list );
}
Run Code Online (Sandbox Code Playgroud)

问题:

如何让API在HTTPS上运行?

如果是与CORS相关的问题,如何在服务器端启用它?

https android ios angularjs ionic-framework

16
推荐指数
1
解决办法
2458
查看次数

jQuery ajax()调用偶尔会导致错误,XmlHttpRequest响应状态为0

我们的Web应用程序中的一个页面使用jQuery的ajax()方法大约每10秒轮询一次服务器以获取新数据.我们通常有几百名用户同时查看此页面,因此我们的服务器每秒会收到多个请求.负载不是任何问题.

对于我们访问者中的一小部分,jQuery ajax()调用会偶尔触发它的错误事件.大多数这些错误事件都是明显的错误(例如访问者遇到网络问题时超时),但是这些错误中的一小部分我很难找到原因,而且我有点困惑.

我们正在连接一个像这样的全局错误监听器

$.ajaxSetup({ 
    timeout: oursettings.timeout,
    error: function(xhr, status, e){
         // error handling goes here
    }
});
Run Code Online (Sandbox Code Playgroud)

对于这个特定的错误子集,jQuery给我们带来了status一些"error".通过jQuery源代码(特别是第3574行)读取错误仅在XmlHttpRequest readystate具有值4(意味着它DONE)并且HTTP响应状态超出成功值(< 200>= 300)时使用此值抛出.

但是,当我们检查XmlHttpRequest对象本身时,我们发现它的(HTTP响应)状态为0.根据XHR规范,当"错误标志为真",应设置状态0 .

这是我真的很困惑的地方,因为XmlHttpRequest规范中关于"错误标志" 的唯一其他事情

DONE状态具有相关的错误标志,指示某种类型的网络错误或堕胎.它可以是true或false,初始值为false.

规范没有说明保留这个错误标志的属性或位置(即,它是否可用xhr.error?).

所以我想我的问题归结为:这将是正确的我们的Ajax的错误处理代码假设击中我们的错误处理程序与jQuery的状态的任何事件"error"xhr.status0,以引起通过"网络错误或流产"?

是否有任何其他条件或任何其他人看到的可能导致XmlHttpRequest readystate DONE (4)的HTTP响应状态为0?我希望能够排除服务器端错误的任何可能性(因为我们的服务器端日志没有显示任何内容),并且要更改错误处理逻辑以不将此方案视为致命错误(这导致用户看到一堆大红色警报类型错误消息).

ajax jquery xmlhttprequest

9
推荐指数
1
解决办法
4357
查看次数

获取状态代码 0 角度 HttpClient?

我在使用 angular 4 的 HttpClient get 方法时遇到了一个奇怪的问题。

有一些从后端返回的自定义错误消息,我应该处理并显示给用户。但是我在控制台中得到了 HttpErrorResponse

HttpErrorResponse:
error: ProgressEvent {isTrusted: true, lengthComputable: false, loaded: 0, 
total: 0, type: "error", …}
headers: HttpHeaders {normalizedNames: Map(0), lazyUpdate: null, headers: 
Map(0)}
message: "Http failure response for (unknown url): 0 Unknown Error"
name: "HttpErrorResponse"
ok: false
status: 0
statusText: "Unknown Error"
url: null
Run Code Online (Sandbox Code Playgroud)

我在这里读到了这个问题但没有一个解决方案对我有帮助。在浏览器的网络选项卡中,我能够观察到来自服务器的真实响应:

"{\"StatusCode\":400,
  \"ExceptionMessage\":\"Internal Server Error\",
  \"Error\":\"Internal Server Error\",
  \"Errors\": 
  [{\"Code\":\"ValidationError\",\"Message\":\"Custom message here.\"}]}"
Run Code Online (Sandbox Code Playgroud)

该请求在网络选项卡中如下所示:

General: 
Request URL: https://asdfhost:port/5c77a77101ae8643aeeb61e9
Request Method: GET
Status Code: 400 
Remote …
Run Code Online (Sandbox Code Playgroud)

javascript error-handling xmlhttprequest httpclient angular

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

AJAX返回异常状态代码

所以我终于再次尝试了AJAX(而不是隐藏的iframe),我现在还记得为什么我一开始就非常讨厌AJAX.

这是一个简单的脚本,可以向服务器查询用户收到的私人消息的数量.服务器以单个数字响应,脚本更新指示器并设置超时五秒钟以再次查询.

在极少数情况下(通常当我去AFK一段时间),我开始获得最奇怪的HTTP状态代码.

在Chrome上:"AJAX请求无法检索/ajax/network.php,HTTP状态0"
在IE上:"AJAX请求无法检索/ajax/network.php,HTTP状态12029"

这些代码都不是有效的.这里发生了什么,我怎么能阻止它发生?

javascript ajax http-status-codes

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