statusText;
      // spring boot 的响应
      if (data) {
        handleError(data);
        return Promise.reject(data.error);
      }
      // spring scurity BearerTokenAuthenticationEntryPoint 的响应
      handleError({status});
      return Promise.reject(statusText);
    });

    function fetchCsrf() {
      return axios.get('${api}/env/csrf').then(function (response) {
        const data = response.data;
        if (data && data.headerName && data.token) {
          $('meta[name="_csrf_header"]'