jquery终端应在ajax GET完成后回显到屏幕。目前,[^aeiou]
不会在成功回调中触发
尝试设置CORS,但仍然不会输出。这是一个客户问题。
terminal.echo
我希望它稍后能返回AJAX请求的响应,但这似乎不受支持。
答案 0 :(得分:1)
this
关键字在这里并不意味着您认为的含义:
success: function (result) {
this.echo(data);
console.log(data);
}
此代码在设置了代码的很长时间之后被调用,并且this
不再引用您的terminal
实例。现在,它引用了jqXHR
对象(AJAX请求/响应的内部)。
您可以在变量中捕获该实例,该变量将保留该引用供以后使用。像这样:
var terminal = this;
terminal.echo("register...");
jQuery.ajax({
//...
success: function (result) {
terminal.echo(data);
console.log(data);
}
});
旁注:您应该从代码中删除async:false
。这不仅是一个著名的坏主意,而且它也正被浏览器弃用。如果已经有不支持它的常用浏览器,我不会感到惊讶。
使您的异步代码保持异步状态。