Không lấy được nội dung chuỗi JSON từ web service

Chào mọi người.
Hiện tại em đang tìm hiểu về web service viết bằng PHP, em có làm một bài tập nhỏ đó là lấy tất cả dữ liệu của bảng truy vấn trên server rồi trả về dạng chuỗi JSON cho client, đây là đoạn code thực hiện việc đó:

<?php
	        $servername = "localhost";
		$username = "root";
		$password = "";
		
		// Create connection
		$conn = mysql_connect ( $servername, $username, $password ) or die ( "Can't connect to database");
	
		mysql_select_db("dbname", $conn);

		$sql = "SELECT * FROM tbl";
		$myData = mysql_query($sql, $conn);
		$result = array();
		while($row = mysql_fetch_assoc($myData)) {
			//$result[] = $row;
			array_push($result, $row);
		}
		header('Content-type: application/json; charset=utf-8');
		echo json_encode($result, true);
?>

Kết quả chạy ra đúng định dạng JSON như mong muốn cả trên localhost cũng như host thật:
http://nckhhumg.byethost12.com/hocjson/webservice.php
Nhưng khi em viết code cho client (ở đây là android device) thì lại không get được nội dung về.
Em thử load url trên vào trang http://codebeautify.org/ để xem nó có get đc nội dung không thì nó bị lỗi.
Trong khi em đó em có test thử với link của bên Khoa Phạm thì lại ok:
http://khoapham.vn/download/json/vd3.php

Câu hỏi của em là: có phải vấn đề ở đây là do host không ạ? Tại vì em đăng ký host này là host free của Byethost ạ.

Em cám ơn mọi người.

Lỗi host nhé.

Thử lại với host khác,

1 Like

Dạ em vừa mới thử với cái link của Khoa Phạm thì ok, đúng là lỗi host thật, chắc vì host free nên nó chèn quảng cáo hoặc mã js thêm nên json ko load đúng đúng ko ạ?

Thay
header('Content-type: application/json; charset=utf-8');

bằng

header('Access-Control-Allow-Origin: *'); header('Content-type: application/json; charset=utf-8');

Có thể là lỗi do CORS

1 Like

Cám ơn bác, em đã đổi host khác như bác ở #2 và hoàn toàn khắc phục được.

Cậu ơi…Host nào thế…cậu share cho mình với

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?