1

指定された ID の記事のコンテンツを返す ajax アプリケーションがあります。すべてのリクエストは php ファイルに送信され、データベースから記事のコンテンツを取得してエコーします。

ここで、問題があります。php ファイルには常に200 OKステータスがあります。そして、記事が存在しないことを示すステータス コードを送信する必要があります。通常の範囲から完全に外れているもの (類似100 000または類似)。

私の質問は、php でそのようなステータスを設定することは可能ですか?

4

3 に答える 3

2

http_response_codeを使用して 404 ステータス コードを返すことができます。

もう 1 つのオプションは、JSON 応答として返したいステータス コードとデータをエンコードし、それをブラウザに返すことです。

$response = array(
   'status' => 100001,
   'result' => '<h1>Title...'
);
echo json_encode($response);
exit;
于 2013-11-01T15:35:56.940 に答える
1

通常、PHP では 2 つの回答方法を組み合わせることができます。ベスト プラクティスは、正しい http ステータス コードを送信することですが、正しいコード (見つからない場合は 404、間違った入力の場合は 409 (単なる例) など) を使用すると、標準的な回答であるかのようにテキスト応答メッセージを送信できます。

したがって、以前の回答を組み合わせることができます(必要な場合):

http_response_code(404);
$response = array(
   'status' => 100001,
   'result' => 'Document was not found on server'
);
echo json_encode($response);
exit;

しかし、その状況でサブステータスが必要かどうかはわかりません。

あなたのjavascriptでそれを使用すると、xhr応答コードで操作してエラー自体を特定し、応答本文でサーバーから送信されたテキストとサブステータスをユーザーに表示できます。

于 2013-11-01T15:47:45.080 に答える