0

データを返す php API があります。アプリケーションからJSONそれを受信しようとするとJSON、次のエラーが発生しました。

"Expected content type {(\n    \"text/json\",\n    \"application/json\",\n    \"text/javascript\"\n)}, got text/html";

php API が有効な JSON を返さないと返信するかもしれません。Json Lint で確認したところ、有効な JSON であり、ヘッダーは次のように設定されています。JSON

    header( 'Content-Type: text/json' );
    echo '{"Response":'.json_encode($arr).'}';

MAMPmime.typesファイルも確認したところ、JSON MIME タイプが正しく含まれています。

私が疑っている唯一のことは、ブラウザー経由で API を呼び出すと、JSON が期待どおりに取得されることですが、ページのソース コードを表示すると、先頭に 2 つの空の行が表示されます。以下のように。

1-   
2-
3-    {"Response":[{"Product ID":"12037","Product Title":"RIng 14K Cloud 9","Product Description":"RIng 14K Cloud 9","Product Wholsale Price":"$255","Product Sale Price":"$460","Category Id":"55","Category Name":"Rings","Product Image":"http:\/\/192.163.1.87:8888\/xxxxxx\/wp-content\/uploads\/2012\/12\/150101.jpg","Product Sub Images":["http:\/\/192.163.1.87:8888\/xxxxx\/wp-content\/uploads\/2012\/12\/150101.jpg"],"SKU":"150101-50","Quantity":"1","Size":"50","Color":"Y","Manufacturer":"xxxxxx"},{"Product ID":"12039","Product Title":"Ring 14K Cloud 9","Product Description":"Ring 14K Cloud 9","Product Wholsale Price":"$255","Product Sale Price":"$460","Category Id":"55","Category Name":"Rings","Product Image":"http:\/\/192.163.1.87:8888\/xxxxx\/wp-content\/uploads\/2012\/12\/150101.jpg","Product Sub Images":["http:\/\/192.163.1.87:8888\/xxxxx\/wp-content\/uploads\/2012\/12\/150101.jpg"],"SKU":"150101-52","Quantity":"1","Size":"52","Color":"Y","Manufacturer":"xxxxxx"}]}

これはphpコードまたはMAMPサーバーの何かと関係がありますか? 事前にサンクス。

4

2 に答える 2

1

出力の先頭に 2 つの空の行があります。header()何かが出力されると、関数を使用してヘッダーを変更することはできなくなります。

一部のファイルでは、php の開始/終了タグの前後にスペースがあると問題が発生する場合があります。<?phpすべてのファイルのタグがファイルの一番最初にあることを確認してください。ファイルのエンコーディングを確認してください。php の終了タグの後に末尾の空白を残さないでください?>。ファイルの末尾からすべての終了タグを削除することもできます。

于 2013-03-27T22:20:49.113 に答える
0

また、JSON の正しいヘッダー タイプは application/json だと思います。

header('Content-Type: application/json');

JSONP を使用している場合は、application/javascript にする必要があります。

header('Content-Type: application/javascript');
于 2013-03-27T22:34:35.057 に答える