我正在调用AJAX,然后将那个AJAX的“结果”保存到名为result(this.result)的变量中。但是当我调用函数getData()然后尝试访问该变量时-它为空。基本上没有数据存储在该课程中...我在做什么错了?
export default class Search {
constructor(){
this.result = {};
}
getData(){
$.ajax({
'url': proxy + "documents",
'type': 'GET',
'content-Type': 'x-www-form-urlencoded',
'dataType': 'json',
'headers': {
'Authorization': 'bearer ' + localStorage.access_token
},
'success': function (result) {
this.result = result; // DOES NOT WORK
documentView.fillDocuments(result);
return result;
},
'error': function (XMLHttpRequest, textStatus, errorThrown) {
alert('Error: ' + errorThrown);
console.log(XMLHttpRequest.status + ' ' +
XMLHttpRequest.statusText);
return "";
}
});
}
此代码是从主类(index.js)调用的,它可以工作...但不会将数据保存到该变量中...
state.search.getData();
然后没有可用的数据:(只有{},如该类中声明的那样)
alert("RESULT: "+ JSON.stringify(state.search.result));
state仅是var state = {};用于保存应用程序的当前状态。
var state;
// init app
$(document).ready(function() {
const intializeApp = () => {
state = {};
if(localStorage.access_token){
state.search = new Search();
const decodedJWT = parseJwt(localStorage.access_token);
state.currentUser = new User(decodedJWT.user_name, decodedJWT.authorities);
userView.setInitialInformation(state.currentUser);
state.search.getData();
}
}
intializeApp();
});