当我做一些Ajax调用时,我一直收到这个错误...
它甚至可能与地理编码有关,但我真的不知道如何捕获错误以显示对用户有用的东西......甚至如何解决问题,因为它似乎只是引用某种指针或其他东西: S 0x2ef3
SCRIPT7002:XMLHttpRequest:网络错误0x2ef3,由于错误00002ef3无法完成操作.
图像可能比错误消息更有帮助:

有什么想法吗?
我的代码在1秒内触发10个ajax调用,由地理编码服务器端处理.
错误会间歇性地出现.有时我会得到地理编码的结果,有时我会得到错误.我会说我有10%的时间得到它.它完全阻止了ajax调用在jQuery中触发我的错误处理程序.
我已经在这个问题上工作了几天,并在这个论坛上伸出手,因为我觉得我已经筋疲力尽了.我有一个在Drupal 7网站上托管的表单,需要将表单值提交给外部URL.该表单通过jQuery.AJAX使用HTTPS协议的POST请求
SCRIPT7002:XMLHttpRequest:网络错误0x2ef3,由于错误00002ef3无法完成操作
我尝试过以下方法:
添加contentType:
// causes all of the jQuery callbacks to error out
"application/json; charset=utf-8",
Run Code Online (Sandbox Code Playgroud)在实际POST之前尝试Ajax GET调用(如另一个SO线程所示)
添加header( 'Content-Type: application/json; charset=utf-8' );到请求中
组 crossDomain: true
添加了适当的CORS标头,并在下面粘贴表单代码:
$.ajax({
url: "[URL]", //the page to receive the form data
crossDomain: true,
type: "POST",
data: dataString, //posting to API
dataType: "json", //the data type the function should expect back from the server
success: function(data) {
if (data.response_status == "1") { //error for at least 1 field …Run Code Online (Sandbox Code Playgroud) SCRIPT7002:XMLHttpRequest:网络错误0x2ef3,由于错误00002ef3无法完成操作
目前没有有效的解决方案.
更新:也在IE11上注意到.
经过越来越多的调查,我得到了这样的结果:
我的问题是:
现在,我正在做的临时解决方案是,如果HTTP状态代码为零,则只重试最多3次.但它非常难看,因为即使上传请求有时也会失败,并且对于那些重试的请求变得缓慢,有时需要额外的100毫秒.
重现步骤:
我的IE版本:
现在我正在解决它,如果browser is IE10&& Request is POST&& 重试最多3次HTTP status code is 0.
如果有人可以帮我删除我丑陋的解决方案,我将不胜感激,因为有了这样的解决方案,即使请求进入服务器并且它返回0我也会重试(我试图通过测量xhr.send之间的时间来避免这种情况)和它的回调但它不可靠),如果IE10在comptMode中,如果IE11有同样的问题,添加到那个性能,它将占用我的机器〜每次重试之间的170ms.
我有时/经常在GWT中获得此异常,但不知道原因:
SEVERE: com.google.gwt.user.client.rpc.StatusCodeException: 0
java.lang.RuntimeException: com.google.gwt.user.client.rpc.StatusCodeException: 0
at Unknown.java_lang_RuntimeException_RuntimeException__Ljava_lang_Throwable_2V(Unknown Source)
at Unknown.de_ctech24_simplynews_web_client_util_SimpleCallback_$onFailure__Lde_ctech24_simplynews_web_client_util_SimpleCallback_2Ljava_lang_Throwable_2V(Unknown Source)
at Unknown.com_google_gwt_user_client_rpc_impl_RequestCallbackAdapter_$onResponseReceived__Lcom_google_gwt_user_client_rpc_impl_RequestCallbackAdapter_2Lcom_google_gwt_http_client_Request_2Lcom_google_gwt_http_client_Response_2V(Unknown Source)
at Unknown.com_google_gwt_http_client_Request_$fireOnResponseReceived__Lcom_google_gwt_http_client_Request_2Lcom_google_gwt_http_client_RequestCallback_2V(Unknown Source)
at Unknown.com_google_gwt_http_client_RequestBuilder$1_onReadyStateChange__Lcom_google_gwt_xhr_client_XMLHttpRequest_2V(Unknown Source)
at Unknown.<anonymous>(Unknown Source)
at Unknown.com_google_gwt_core_client_impl_Impl_apply__Ljava_lang_Object_2Ljava_lang_Object_2Ljava_lang_Object_2Ljava_lang_Object_2(Unknown Source)
Caused by: com.google.gwt.user.client.rpc.StatusCodeException: 0
at Unknown.java_lang_RuntimeException_RuntimeException__Ljava_lang_String_2Ljava_lang_Throwable_2V(Unknown Source)
at Unknown.com_google_gwt_user_client_rpc_StatusCodeException_StatusCodeException__ILjava_lang_String_2V(Unknown Source)
at Unknown.com_google_gwt_user_client_rpc_impl_RequestCallbackAdapter_$onResponseReceived__Lcom_google_gwt_user_client_rpc_impl_RequestCallbackAdapter_2Lcom_google_gwt_http_client_Request_2Lcom_google_gwt_http_client_Response_2V(Unknown Source)
at Unknown.com_google_gwt_http_client_Request_$fireOnResponseReceived__Lcom_google_gwt_http_client_Request_2Lcom_google_gwt_http_client_RequestCallback_2V(Unknown Source)
at Unknown.com_google_gwt_http_client_RequestBuilder$1_onReadyStateChange__Lcom_google_gwt_xhr_client_XMLHttpRequest_2V(Unknown Source)
at Unknown.<anonymous>(Unknown Source)
at Unknown.com_google_gwt_core_client_impl_Impl_apply__Ljava_lang_Object_2Ljava_lang_Object_2Ljava_lang_Object_2Ljava_lang_Object_2(Unknown Source)
Run Code Online (Sandbox Code Playgroud)
花了一些时间谷歌后我发现了这个:http://www.mail-archive.com/google-web-toolkit@googlegroups.com/msg79537.html
有一个有趣的提示:如果您断开WLAN并再次连接,则会出现这种情况 - 然后出现错误.我在我的笔记本上尝试了这个 - 然后发生异常.
另一个问题是有时会出现这种异常(并非总是在同一时间或执行特定操作时 - 所以看似随机),尽管网络连接正常.我不知道为什么会发生这种情况,也不知道处理它的正确方法是什么 - 确保我能抓住并忽略它.但是请求永远不会进入服务器并且不执行操作 - 不是很好的错误处理.
关于这个应用程序的一些数据 - 这可能有助于缩小或希望解决问题: …
如果失败,我需要重试发送GWT RPC请求(除了HTTP 200之外的任何响应代码).原因很复杂,所以我不会详细说明.到目前为止,我在同一个地方处理所有请求响应,如下所示:
// We override the RpcRequestBuilder.doSetCallback method and force your service to use it
// With this we can read the response headers if we need to.
((ServiceDefTarget)serviceRPC).setRpcRequestBuilder(new RpcRequestBuilder() {
@Override
protected void doSetCallback(RequestBuilder rb, final RequestCallback callback) {
super.doSetCallback(rb, new RequestCallback() {
@Override
public void onResponseReceived(Request request,
Response response) {
httpResponseOkHandler(callback, request, response);
}
@Override
public void onError(Request request, Throwable exception) {
httpResponseErrorHandler(callback, request, exception);
}
});
}
});
Run Code Online (Sandbox Code Playgroud)
因此,使用httpResponseOkHandler方法,我可以捕获HTTP失败.但是,有没有办法"重新抛出"请求,即重试?我不想存储RPC请求的高级参数,我更愿意使用已经流式传输并准备重新发送的请求内容.
有任何想法吗?