sam*_*ner 0 html javascript php jquery json
我在读取我在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);
Run Code Online (Sandbox Code Playgroud)
这是Javscript:
$.post("payment_do.php", { "token": response.response.token, "ip_address": response.ip_address}).done(function(data) {
console.log(data);
});
Run Code Online (Sandbox Code Playgroud)
似乎如果我在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}}"
Run Code Online (Sandbox Code Playgroud)
最后我不得不删除php中的json_encode函数,只返回结果.在javascript(使用jQuery)中我然后调用:
data = $.parseJSON(data);
Run Code Online (Sandbox Code Playgroud)
然后我可以访问该对象的元素.
将标题更改为application/json(而不是text/json).此外,如果您确实想要进一步处理curl_exec调用结果,则需要设置其他选项:
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
Run Code Online (Sandbox Code Playgroud)
这将导致curl_exec调用成功返回数据,而不是TRUE.
$result = curl_exec($ch);
if(! $result) {
// handle error
}
echo json_encode($result);
Run Code Online (Sandbox Code Playgroud)
此外,您还需要验证从cURL调用中返回的数据 - 确保在返回之前确实需要对其进行编码.
| 归档时间: |
|
| 查看次数: |
192 次 |
| 最近记录: |