可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
I have the jquery json request in the following format:
JSON request:
$.getJSON('http://xyz.com',function(result) {});
If the request fails(server not responds), how do i redirect to another domain. for example "http://zxy.com".(we maintaining the same code in another server)
回答1:
Did you try this?
function addImage(item) { $("<img/>").attr("src", item.media.m).appendTo("#images"); } var jqxhr = $.getJSON("http://xyz.com",function(data) { $.each(data.items, function(i,item){ //sample addImage(item); }) .error(function() { var jqxhrFailover = $.getJSON("http://zzz.com", function(data) { $.each(data.items, function(i,item){ //sample addImage(item); }).error(function(){ alert('both failed!'); });
回答2:
I think that it may be better to use $.ajax(), error
method or success
if the server tells you based on the response).
Then use this to redirect the browser.
window.location = "http://www.google.com"
回答3:
$.getJSON() is defined as:
jQuery.getJSON=function(url,data,callback){ return jQuery.get(url,data,callback,"json"); };
and as such, fails silently.
To react to errors you'll need to use the $.ajax() function directly which allows you to define an onError handler, as in:
$.ajax({ url: '...', contentType:'json', success:function(result,stat,xhr){ ... }, error:function(xhr,opts,err){ ... } });
See jQuery Ajax error handling, show custom exception messages for further information.