私は、Jquery AJAX呼び出しにJSONを返すPHPページを作成しようとしています。問題は、コンテンツタイプをapplication/jsonに設定しているにもかかわらず、応答には常にHTMLヘッダーが含まれているようです。ここでPHP JSONレスポンスにHTMLヘッダーが含まれています
は、PHPのコードは次のとおりです。JavaScriptでは次に
// some code that generates an array
header("Content-type: application/json");
echo json_encode($return);
:
$.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!');
}
});
応答は、常にこのようなもののようだ:
<!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
と応答ヘッダーに応じてそれは確かにそれがJSONだと思う:
HTTP/1.1 200 OK
Content-Type: application/json
Server: Microsoft-IIS/7.5
X-Powered-By: PHP/5.3.3
コードを実行すると、「エラー!」という警告が表示されます。毎回解雇されますが、これは理解できるものです... HTMLが応答に含まれている理由は何ですか?
どのように応答を調べますか? –
おそらくあなたのアプリケーションはそれを他のところで行い、出力バッファリングが有効になっているので、 'ヘッダは既に送信されました'というエラーは表示されません。 – Mchl
フレームワークを使用していますか、それともスタンドアロンのPHPファイルですか? –