У меня возникла небольшая проблема с чтением данных JSON, которые я генерирую в PHP, а затем возвращаю обратно в свой 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);
А вот и джавскрипт:
$.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\":\"[email protected]\",\"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}}"
В конце концов мне пришлось удалить функцию json_encode в php и просто вернуть результат. Затем в javascript (используя jQuery) я назвал:
data = $.parseJSON(data);
С помощью которого я мог бы получить доступ к элементам объекта.
$result
простоtrue
, которая кодируется как1
с помощьюjson_encode
. 19.03.2013json_encode
. Любые идеи? 19.03.2013curl_exec
и добавьте его часть к своему вопросу. 19.03.2013echo $result
и все будет в порядке. 19.03.2013