【发布时间】:2013-03-19 08:25:20
【问题描述】:
我在读取我在 PHP 中生成的 JSON 数据然后传回我的 Javascript 时遇到了一点问题,我不知道为什么。
这里是 PHP:
header("content-type: text/json");
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);
//execute post
$result = curl_exec($ch);
// echo the result as a JSON object
echo json_encode($result);
这里是 Javscript:
$.post("payment_do.php", { "token": response.response.token, "ip_address": response.ip_address}).done(function(data) {
console.log(data);
});
似乎我在 PHP 中去掉了标题行,我得到了一个可以在 Javascript 中读取的响应,但我无法以您期望的方式访问任何元素。如果我将标题留在其中,我将无法获得 javascript 可读的响应。
编辑:现在从 php 获得响应,如下所示:
"{\"response\":{\"token\":\"ch_9knTXHoU0dVZsl7iMHyHGg\",\"success\":true,\"amount\":9900,\"currency\":\"AUD\",\"description\":\"test\",\"email\":\"test@test.com\",\"ip_address\":\"1.1.1.1\",\"created_at\":\"2013-03-18T23:49:12Z\",\"status_message\":\"Success!\",\"error_message\":null,\"card\":{\"token\":\"test_token\",\"display_number\":\"XXXX-XXXX-XXXX-0000\",\"scheme\":\"master\",\"address_line1\":\"123 Fake Street Fakington\",\"address_line2\":null,\"address_city\":\"moon\",\"address_postcode\":\"2121\",\"address_state\":\"NSW\",\"address_country\":\"Australia\"},\"transfer\":[],\"amount_refunded\":0,\"total_fees\":999,\"merchant_entitlement\":999,\"refund_pending\":false}}"
最后我不得不删除 php 中的 json_encode 函数并返回结果。然后在javascript(使用jQuery)中调用:
data = $.parseJSON(data);
然后我可以使用它访问对象的元素。
【问题讨论】:
标签: php javascript jquery html json