javascript - 对 API POST 使用 .done 和 .fail

标签 javascript jquery asp.net

我正在使用 asp.net、c# 和 jquery。我正在使用 API。当我收到响应时,我想在成功 (.done) 和失败 (.fail) 时执行某些代码。

但是,我的代码当前同时运行 .done 和 .fail 代码。我确实相信我需要将代码中的 $.ajax(settings) 减少 2 倍至 1 次。我尝试在其中嵌套 .done 和 .fail,但我无法找出正确的语法。

我的问题是在我的 $.ajax(settings).done(function (response)$.ajax(settings).fail(function (xhr)我的代码目前似乎向 API 提交了两次 POST,因为我调用了两次设置。任何人都可以帮助解决我的问题吗?我需要了解以下代码中 .done 和 .fail 的语法应该是什么。我我想我只是在这里遗漏了一些小东西。

最佳答案

你是对的。您不应该两次运行相同的 ajax 调用。相反,您可以在同一个 ajax 调用中链接 donefail 回调。

示例:

$(document).ready( () => {
  $.ajax('https://jsonplaceholder.typicode.com/todos/1')
  .done( (data) => console.log(data) )
  .fail( (error) => console.error(error) );
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

所以你的代码应该如下所示:

$.ajax(settings).done(function (response) {

        'Get the response from Agile'

        'Payment Response'
        var responseType = response.response.response_type;
        var responseCode = response.response.response_code;
        var responseDesc = response.response.response_desc;

        'Indentification'
        var invoiceCode = "TEST";
        var invoiceInstance = "123";
        var nextNum = "1";
        var responseInvoiceNum = response.reference_id;
        var responseTransactionId = response.transaction_id;

        'Billing Information'
        var responseBillingFirstName = response.billing_address.first_name;
        var responseBillingLastName = response.billing_address.last_name;
        var responseBillingEmail = response.billing_address.email;
        var responseBillingPhone = response.billing_address.phone;
        var responseBillingStreet1 = response.billing_address.physical_address.street_line1;
        var responseBillingStreet2 = response.billing_address.physical_address.street_line2;
        var responseBillingCity = response.billing_address.physical_address.locality;
        var responseBillingState = response.billing_address.physical_address.region;
        var responseBillingZip = response.billing_address.physical_address.postal_code;
        var responseBillingCountry = response.billing_address.physical_address.country;

        'Payment Information'
        var cardType = response.card.card_type;
        var last4digits = response.card.last_4_account_number;
        var responseAmount = response.authorization_amount;


    })
    .fail(function (xhr) {

        var responseType = xhr.responseJSON.response.response_type;
        var responseCode = xhr.responseJSON.response.response_code;
        var responseDesc = xhr.responseJSON.response.response_desc;


    });

关于javascript - 对 API POST 使用 .done 和 .fail,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60067926/

相关文章:

javascript - 导航点击页面滚动的限制区域

javascript - 错误 "Object function ' modal'没有方法”动态加载脚本文件

javascript - => 在 Node js 中是什么意思

php - 图片高宽问题

jquery - 将文本字符串缩放到给定宽度

c# - Response.End() 后刷新页面内容

asp.net - 解析服务器端标签时出错

javascript - D3.js 围绕圆绘制矩形

javascript - 单击后显示对话框弹出刷新页面

javascript - 对于每个具有特定属性的元素 - Javascript