如何从AJAX responseText获得价值

时间:2019-12-12 12:57:10

标签: javascript ajax

我正在运行一个AJAX函数,该函数返回一个响应,我需要从responseText中获取值

jQuery.ajax({
                url: process_payment.ajaxurl,
                type: 'post',
                dataType: 'json',
                data: {
                    action: 'process_payment',
                    payment_method_id: result.paymentMethod.id
                },
                complete: function(json) {
                    var response = json.responseText;
                    console.log(response);
                    handleServerResponse(json);
                }
            }) 

这是变量响应的内容

{"requires_action":true,"payment_intent_client_secret":"0eo9ei48494404014044"}0

例如,我如何计算'requires_action'的值,我以为我可以做response.requires_action,但这返回未定义的值。

编辑

这也不起作用:

 jQuery.post(process_payment.ajaxurl, {
                action: 'process_payment',
                payment_method_id: result.paymentMethod.id
            }, 'json').done(handleServerResponse)

function handleServerResponse(response) {
    console.log(response);
}

1 个答案:

答案 0 :(得分:1)

您需要使用success回调而不是complete,因为completexhr对象保留为回调参数,或者解析响应文本以将JSON字符串转换为对象。

对于success,由于您将dataType指定为json,因此默认情况下将对其进行解析,并在必要时保留错误回调以处理错误情况。

jQuery.ajax({
    url: process_payment.ajaxurl,
    method: 'post',
    // if you're using versions of jQuery prior to 1.9.0 - use `type: 'post'`,
    dataType: 'json',
    data: {
        action: 'process_payment',
        payment_method_id: result.paymentMethod.id
    },
    success: function(response) {
        console.log(response);
        handleServerResponse(response);
    }
}) 

引用:https://api.jquery.com/jQuery.ajax/