我正在尝试使用jquery $ ajax()函数调用Web api,在调用之后我不会将结果存储在我的typescript变量中,但我不知道该怎么做。
$.ajax({
method: "POST",
url: 'URL',
data: { email:'test@gmail.com',
password:'pass'}
})
.done(function(msg ) {
this.response=msg;
}) .fail(function(msg) {
this.response=msg;
})
答案 0 :(得分:0)
如果要在进行Ajax调用的对象上设置它,可以使用箭头函数捕获上下文
class MyCaller {
response: any;
doCall() {
$.ajax({
method: "POST",
url: 'URL',
data: { email:'test@gmail.com', password:'pass'}
}).done((msg ) => {
// this refers to MyCaller, with a simple function it would not
this.response=msg;
}).fail((msg) => {
this.response=msg;
})
}
}
只要您使用TypeScript,就可以利用异步并等待简化代码。这相当于:
class MyCaller {
response: any;
async doCall() {
try {
this.response = await $.ajax({
method: "POST",
url: 'URL',
data: { email:'test@gmail.com', password:'pass'}
})
}catch(error) {
this.response = error
}
}
}