Javascript 如何从AJAX responseText获得价值

Javascript 如何从AJAX responseText获得价值,javascript,ajax,Javascript,Ajax,我有一个AJAX函数正在运行,它返回一个响应,我需要从responseText获取值 jQuery.ajax({ url: process_payment.ajaxurl, type: 'post', dataType: 'json', data: { action: 'process_payment',

我有一个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\u action
”的值例如,我认为我可以执行
响应。requires\u action
,但这将返回未定义的值

编辑

这也不起作用:

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

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

您需要使用
success
回调而不是
complete
,因为
complete
xhr
对象作为回调中的参数,或者解析响应文本以将JSON字符串转换为object

success
的情况下,默认情况下将对其进行解析,因为您将数据类型指定为
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);
    }
}) 

请参阅:

重命名
完成
成功
并使用
json.requires\u action
用作
json.requires\u action
,第行
var response=json.responseText我必须使用成功才能工作吗?不,你也可以使用
.done()
.then()
方法,例如
$.post(process\u payment.ajaxurl,{action:'process\u payment',payment\u method\u id:result.paymentMethod.id},'json')。完成(handleServerResponse)
不妨更新到
方法:“POST”
,使其稍微现代一些。不知道jQuery将维护多长时间
类型
@Phil:是的,但在旧版本中没有
方法
选项<代码>类型
现在保留了
方法的别名
now@Phil:无论如何,刚刚更新:)也许他们将来会删除;)