2011-01-13 5 views
6

jQuery:? Come abilitare timeout per $.ajax({dataType:'jsonp'... C'è qualche soluzione http://jsfiddle.net/laukstein/2wcpU/4

?
$.ajax({ 
    type:"GET", 
    url:'http://lab.laukstein.com/ajax-seo/.json', 
    dataType:'jsonp', 
    timeout:200, // Not working with dataType:'jsonp' 
    success:function(data){$('#content').html(data.content);}, 
    error:function(request,status,error){$('#content').html('request failed');} 
}); 

non mi piace usare alcuni plugin per questo, come http://code.google.com/p/jquery-jsonp

+0

Duplicate: http://stackoverflow.com/questions/1002367/jquery- ajax-jsonp-ignores-a-timeout-and-doesnt-fire-the-error-event –

+1

Non vorrei usare alcuni plugin per questo, come http://code.google.com/p/jquery-jsonp/ – Binyamin

+0

Forse potresti dare un'occhiata al codice del plugin e vedere cosa fa, come mai la risposta che ho collegato afferma che si tratta di una limitazione di JSONP. –

risposta

4

Ecco la mia soluzione con setTimeout e clearTimeouthttp://jsfiddle.net/laukstein/2wcpU/7/

$('#content').ajaxStart(function(){ 
    $(this).html('Loading...'); 
}); 
var timer=window.setTimeout(function(){ 
    $('#content').html('Loading seems to be taking a while. Try again.'); 
},2000); 
$.ajax({ 
    type:"GET", 
    url:'http://lab.laukstein.com/ajax-seo/.json', 
    dataType:'jsonp', 
    success:function(data){ 
     window.clearTimeout(timer); 
     $('#content').html(data.content); 
    }, 
    error:function(){ 
     window.clearTimeout(timer); 
     $('#content').html('The request failed. Try to refresh page.'); 
    } 
}); 
0

Binyamin,

questo SO risposta dovrebbe aiutare:.

jQuery ajax (jsonp) ignores a timeout and doesn't fire the error event

in fondo, suggerisce di utilizzare jquery.jsonp invece di $ ajax

+0

Questo è un duplicato esatto della domanda alla stessa domanda collegata al mio commento sulla domanda. –

+0

scusa marcus, posso vederlo ora. il commento non era lì come ho iniziato la mia risposta :) –

+1

Ho visto che le risposte già prima. Purtroppo non mi piacerebbe utilizzare alcuni plugin per questo come http://code.google.com/p/jquery-jsonp/. Quindi sto cercando qualche altra soluzione? – Binyamin

Problemi correlati