2011-01-13 1 views
6

JQuery:? Как включить timeout для $.ajax({dataType:'jsonp'... Есть ли решение 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');} 
}); 

Я не хотел бы использовать некоторые плагины для этого, как http://code.google.com/p/jquery-jsonp

+0

Дубликат: http://stackoverflow.com/questions/1002367/jquery- ajax-jsonp-ignores-a-timeout-and-doesnt-fire-the-error-event –

+1

Я бы не хотел использовать для этого некоторые плагины, например http://code.google.com/p/jquery-jsonp/ – Binyamin

+0

Возможно, вы можете взглянуть на код плагинов и посмотреть, что он делает, как когда-либо ответ, который я связывал, утверждает, что это ограничение JSONP. –

ответ

4

Вот мое решение с setTimeout и 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

Беньямина,

этот SO ответ должен помочь вам:.

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

в основном, предполагает использование jquery.jsonp вместо $ AJAX

+0

Точный дубликат вопроса тот же вопрос, связанный с моим комментарием по вопросу. –

+0

Извините, marcus, можете видеть это сейчас. комментариев не было, так как я начал свой ответ :) –

+1

Я видел, что ответы уже были. К сожалению, я бы не хотел использовать некоторые плагины для таких, как http://code.google.com/p/jquery-jsonp/. Итак, я ищу другое решение? – Binyamin

 Смежные вопросы

  • Нет связанных вопросов^_^