jQuery: Parse dữ liệu JSON trả về từ PHP

Em có một đoạn script PHP gửi dữ liệu trả về sử dụng json_encode như sau:

<?php
$username = isset($_GET['uname']) : $_GET['uname'] : FALSE;
if (!$username) {
    header("Location: ".$backUrl); exit();
}

$criteria = array('username' => $username');
$customer = $em->getRepository('SomeEntity')->findBy($criteria);

$json_encode = json_encode($customer);
...
?>

Sau đó ở phía trình duyệt em cần sử dụng jQuery để parse dữ liệu gửi về từ hàm json_decode ở trên. Em thử sử dụng hàm jQuery.parseJSON() tuy nhiên gặp phải lỗi:

SyntaxError: JSON.parse: unexpected character at line ...

1 Câu Trả Lời

Minh Phạm Minh Phạm

Lỗi trên xuất hiện là bởi vì trình duyệt hiểu rằng dữ liệu trả về từ máy chủ là dạng văn bản (text). Để khắc phục lỗi trên bạn chỉ cần quy định loại dữ liệu trả về cho trình duyệt là JSON.

Một cách đơn giản để thực hiện công việc trên là sử dụng hàm header() trong PHP.

<?php
header("Content-type: application/json");
...
?>

Khi đó ở phía trình duyệt bạn có thể sử dụng hoặc parseJson trong jQuery hoặc JSON.parse trong JavaScript thuần đều được.

Nội dung tối thiểu 100 ký tự

Câu Hỏi Liên Quan