我在访问requestJSON
成功回调之外的 jQuery $.ajax 对象时遇到了困难。如果我做:
var ajax_request = $.ajax({
dataType: 'json',
contentType: 'application/json'
});
console.log(ajax_request.responseJSON);
// this results in `undefined`
如何在不添加.success()
回调的情况下访问 responseJSON?如果我ajax_request
在 Firebug 中进行检查,我可以看到该responseJSON
属性和我期望的数据,但我无法通过以下方式访问它:
ajax_request.responseJSON
更具体地说,我正在使用 Sammy 和 Knockout 构建一个 SPA。在某些路由中,我需要能够从缓存中获取 JSON,如果它不存在,则从服务调用中获取值,然后将其设置到缓存中:
var cached_json = storage.fetch('cached_json', function() {
// make service call
return $.getJSON(url);
});
event_context.render('template.tpl', {'json': cached_json}).appendTo('#my-target');
但是,当然,调用 storage.fetch 不会导致其余代码暂停,直到 $.getJSON 完成。这是我无法完全弄清楚如何构建的部分。