jQuery终端:AJAX完成后如何回显到终端?

时间:2019-06-01 22:55:15

标签: javascript jquery

jquery终端应在ajax GET完成后回显到屏幕。目前,[^aeiou]不会在成功回调中触发

尝试设置CORS,但仍然不会输出。这是一个客户问题。

terminal.echo

我希望它稍后能返回AJAX请求的响应,但这似乎不受支持。

1 个答案:

答案 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 。这不仅是一个著名的坏主意,而且它也正被浏览器弃用。如果已经有不支持它的常用浏览器,我不会感到惊讶。

使您的异步代码保持异步状态。