2011-01-13 24 views
6

jQuery:? Làm thế nào để kích hoạt tính năng timeout cho $.ajax({dataType:'jsonp'... Có bất kỳ giải pháp 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');} 
}); 

tôi không muốn sử dụng một số plugin cho rằng, giống như http://code.google.com/p/jquery-jsonp

+0

trùng lặp: http://stackoverflow.com/questions/1002367/jquery- ajax-jsonp-ignores-a-timeout-và-không-cháy-lỗi-sự kiện –

+1

Tôi không muốn sử dụng một số plugin cho điều đó, như http://code.google.com/p/jquery-jsonp/ – Binyamin

+0

Có thể bạn có thể xem mã plugin và xem nó hoạt động như thế nào bao giờ câu trả lời tôi liên kết với tiểu bang rằng đó là một hạn chế của JSONP. –

Trả lời

4

Đây là giải pháp của tôi với setTimeoutclearTimeouthttp://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,

này SO câu trả lời sẽ giúp bạn:.

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

về cơ bản, gợi ý sử dụng jquery.jsonp thay vì $ ajax

+0

Đó là một bản sao chính xác của câu hỏi cùng một câu hỏi được liên kết trong nhận xét của tôi về câu hỏi. –

+0

xin lỗi marcus, có thể thấy điều đó ngay bây giờ. bình luận không có ở đó khi tôi bắt đầu câu trả lời của tôi :) –

+1

Tôi đã thấy câu trả lời đã có trước đó. Rất tiếc, tôi không muốn sử dụng một số plugin cho tương tự như http://code.google.com/p/jquery-jsonp/. Vì vậy, tôi đang tìm một số giải pháp khác? – Binyamin

Các vấn đề liên quan