在调用done()时将来自服务器的json响应获取到jquery ajax中的变量中

问题描述 投票:0回答:1

我想在单击按钮时从服务器获取 json 响应并解析为 div,但我坚持如何做到这一点。

<button type="submit" id="btPay" name="btPay"> Go for Payment </button><br>
<div id="notif"></div>

我的外部js如下:

  var resJson;
  async function myFunction() {
    var settings = {
      "url": "urlApi",
      "method": "POST",
      "timeout": 0,
      "headers": {"headerContents"},
      "data": JSON.stringify({"inputData"})
    };
    
    $.ajax(settings).done(function (response) {
      resJson = $.parseJSON(response);
    });
  }

  async function setResponse() {
    $("#notif").html(resJson);
  }

  $('#btPay').bind('click', function() {
    myFunction();    
    setResponse();
  })

问题是我无法获取 Json 响应值。基于我的js,我错过了什么吗?

感谢并感谢您的帮助。

javascript html jquery ajax
1个回答
0
投票

我觉得用await来获取答案比较好! 就像这样:

$.ajax(settings).done(function(response) {
  resJson = await $.parseJSON(response);
});
async function setResponse() {
 await $("#notif").html(resJson);
}

希望对你有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.