Tôi gặp vấn đề lạ khi tôi đang cố viết một trang PHP trả về một số JSON cho một cuộc gọi Jquery AJAX. Vấn đề là mặc dù thiết lập kiểu nội dung cho ứng dụng/json, phản hồi luôn có vẻ bao gồm tiêu đề HTML.Phản hồi JSON PHP chứa tiêu đề HTML
Dưới đây là đoạn code PHP:
// some code that generates an array
header("Content-type: application/json");
echo json_encode($return);
Sau đó, trong Javascript:
$.ajax({
url: '/VAPHP/services/datatable.php',
dataType: 'json',
data:
{
type: 'invoices'
},
success: function(data)
{
// show a message saying it's been sent!
alert('Success!');
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert('Error!');
}
});
Câu trả lời luôn luôn có vẻ là một cái gì đó như thế này:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title></title>
</head>
<body>
{"aaData":[["2007-08-01","91109507","Invoice","10.000000","AUD"],["2007-08-02","91110103","Invoice","5.000000","AUD"],["2007-08-02","91110122","Invoice","305.000000","AUD"],["2007-08-02","91110129","Invoice","320.000000","AUD"],["2007-08-03","91111146","Credit
for Returns","10.000000","AUD"],["2007-08-06","91111895","Credit
for Returns","320.000000","AUD"],["2007-09-03","91128486","Credit
Memo","5.000000","AUD"],["2007-09-03","91128487","Credit
etc, etc
Và theo tiêu đề phản ứng nó chắc chắn nghĩ rằng đó là JSON:
HTTP/1.1 200 OK
Content-Type: application/json
Server: Microsoft-IIS/7.5
X-Powered-By: PHP/5.3.3
Bất cứ khi nào tôi chạy mã và cảnh báo "Lỗi!" bị sa thải mỗi lần, điều này có thể hiểu được ... Bất kỳ ai cũng có bất kỳ ý tưởng nào về lý do HTML được đưa vào phản hồi?
Bạn kiểm tra phản hồi bằng cách nào? –
Có lẽ ứng dụng của bạn làm điều đó ở nơi khác và vì bạn đã kích hoạt bộ đệm đầu ra, bạn không nhận được lỗi 'tiêu đề đã gửi'. – Mchl
Bạn đang sử dụng một khung công tác hay nó là một tệp PHP độc lập? –