我正在运行一个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);
}
答案 0 :(得分:1)
您需要使用success
回调而不是complete
,因为complete
将xhr
对象保留为回调参数,或者解析响应文本以将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);
}
})