javascript - fallback on XHR fail, outside of the XHR function -
i doing xmlhttprequest , fallback on doing else (reading local file) if fails, want outside of xhr function (getdbfilexhr) itself.
i using jquery too.
how possible, given fact doesn't seem work .done() , .fail(), maybe deferred variable or else ?
getdbfilexhr( encode_utf8("http://john:hispasswd@mysite.com/dbfile.jsonp") ); //here want else if getdbfilexhr fails : fallbacktolocaldbfile(); function getdbfilexhr(url) { var request = new xmlhttprequest(); request.open("get", url, true); //3rd parameter sync/async request.onreadystatechange = function() { //call function when state changes. if (request.readystate == 4) { if (request.status == 200 || request.status == 0) { console.log('we response xhr'); var jsontext = request.responsetext.replace("callback(", ""); jsontext = jsontext.replace(");", ""); storejsoninprodata(json.parse(jsontext)); dbreadydeferred.resolve(); } else { console.log('error : request.status = '+request.status); } } } console.log("sending xmlhttprequest..."); request.send(); } function fallbacktolocaldbfile(){ $.get('prodb.jsonp').done(function(data){ console.log(data); //storejsoninprodata(data); //dbreadydeferred.resolve(); }); }
mmm maybe :
var d=$.deferred() function getdbfilexhr(url) { .... if (request.readystate == 4) { ... d.resolve(_mydata); } else { console.log('error : request.status = '+request.status); d.reject(_myerror); } } } console.log("sending xmlhttprequest..."); request.send(); } d.done(function (a){...}).fail(function (b){}); javascript jquery
No comments:
Post a Comment