如何使ajax成功回调数据全局可用

How to make ajax success callback data available globally?

本文关键字:全局 数据 回调 何使 ajax 成功      更新时间:2023-09-26

所以我有一些数据从rails后端返回,我想使这些数据在全球范围内可用,我已经读过关于windows。变量=成功回调数据,但我必须在ajax请求上设置async:false,现在已弃用并且不起作用。

有新的解决方法吗?

这是我的ajax代码
function retrieve(date_partial) {
    var jsondata = {
      events: {
        month: date_partial,
      }
    }
    $.ajax({
      cache: false,
      type: "POST",
      url: "/events/find",
      data: jsondata,
      success: function(data) {

        for (var i = 0; i < data.events.length; i++) {
          var day = data.events[i].date.substring(0, 2);
          $("td[data-day='" + day + "']").addClass('added');
        }
      },
      error: function(xhr) {
        alert("The error code is: " + xhr.statusText);
      }
    });
  }

i have read about windows.variable

这就是如何使一个值在JavaScript中全局可用,在window对象上设置它。像这样:

window.someVariable = someValue;

但是我必须在ajax请求

上设置async:false

你绝对不应该那样做。这和你问的也没有关系。window对象总是可用的,这就是为什么它是全局的:

success: function(data) {
    window.someVariable = data.someValue;
}

一旦回调运行,window.someVariable将包含该值,并可用于页面上的任何其他代码。