о процессе ошибки времени ожидания jQuery - PullRequest
1 голос
/ 17 декабря 2010

Недавно я обнаружил ошибку об истечении времени ожидания.

См. Код ниже.

  • Время ожидания jQuery: 5000 мс
  • Сон сервлета: 10000 мс

Javascript на стороне клиента

    $.ajaxSetup({
    url: "http://localhost:8888/{mydomain}",
    timeout : 5000,
    error:function (xhr, textStatus, thrownError){
        switch(xhr.status) {
            case 0 :
                $('#msg').append("0");
                break;
            case 404:
                $('#msg').append("404 ERROR."); 
                break;
            case 500:
                $('#msg').append("500 ERROR.");
                break;
            case 408:
                $('#msg').append("408 ERROR.");
                break;              
            default :
                $('#msg').append(xhr.status);
                break;
        }
    }       
});

$(function() {
        $.ajax({
            type: "GET",
            dataType:"JSON",
            data:{send a some data},
            success:function(response){
                alert(response);
            }
        })      
});

Java-процесс

@Path("/{mydomain}")
public class DummyResource {

    @GET
    @Produces(MediaType.TEXT_HTML)
    public String getMethod() throws Exception {

        try {
            Thread.sleep(10000);            
        } catch(InterruptedException ie) {
            throw new WebApplicationException(Response.Status.SERVICE_UNAVAILABLE);
        }
        return "hello!";
    }
}

Но ошибка в Safari и Firefox различна.

  1. Safari (ошибка времени ожидания: я думаю, этот результат верный.)

    > GET //localhost:8888/{mydomain} Aborted
    
  2. Firefox (успех, но произошла ошибка)

    > GET //localhost:8888/{mydomain} 200 OK 10.01s
    uncaught exception: [Exception... "Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIXMLHttpRequest.status]" nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)" location: "JS frame :: //localhost:8888/{mydomain}/ajax.html :: anonymous :: line 20" data: no]
    

Информация о моей системе

MacOSX: 10.6.5
Браузер: Safari 5.0.3, Firefox 3.6.8

...