如何异步获取响应文本?

时间:2017-04-21 19:21:44

标签: javascript jquery ajax asynchronous

我正在尝试使用ajax从URL获取响应文本。如果我将async标志设置为false,则下面的代码工作正常,但我收到来自jQuery的警告

  

jquery.min.js:4主线程上的同步XMLHttpRequest因其对最终用户体验的不利影响而被弃用。

以下是代码:

function verifyUser()
{
    var response = $.ajax({type: "GET", url: "/verify/4512h58", async: false}).responseText;
    console.log(response);
}

如果我将async标志设置为true,那么

var response = $.ajax({type: "GET", url: "/verify/112358", async: true}).responseText;

我得undefined作为输出。怎么解决这个问题?

2 个答案:

答案 0 :(得分:2)

这使用了一个名为promises的东西,所以它需要看起来像这样......

var response = $.ajax({
  type: "GET",
  url: "/verify/4512h58"
}).done(function (response) {
  console.log(response);
});

See for more info

答案 1 :(得分:1)

使用回调

var response = "";
$.ajax({type: "GET", url: "/verify/112358", async: true})
     .then(function(x){
        response = x.responseText
     });

另见How do I return the response from an asynchronous call?