メインコンテンツにスキップ
バージョン: 1.x

API04003: 不正なJSONレスポンス

これは何を意味するか

サーバーはJSONのように見えるデータを返しましたが、それが破損しているか無効です。POSはJSON構文が壊れているため、レスポンスを解析できませんでした。

一般的な原因

  • PHPの通知/警告 — JSONの前に出力されたPHP
  • BOM (バイトオーダーマーク) — ファイルの先頭にある不可視文字
  • エンコーディングの問題 — 文字エンコーディングの問題
  • 切り捨てられたレスポンス — 転送中にレスポンスが切断された
  • プラグインの出力 — プラグインが非JSONコンテンツを追加した

修正方法

1. PHPの通知を確認する

JSONの前にPHPの通知/警告があると解析が中断されます:

wp-config.phpで:

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);

wp-content/debug.logを確認し、問題を修正します。

2. BOM文字を確認する

一部のテキストエディタは不可視のBOM文字を追加します:

  • BOMなしでPHPファイルを再保存してください
  • BOMなしのUTF-8エンコーディングを使用
  • 最近編集したファイルを確認

3. 完全なレスポンスを確認する

レスポンスが切り捨てられる場合:

  • PHPの出力バッファリング設定を確認
  • php.iniでoutput_bufferingを増加
  • タイムアウトの問題を確認

4. APIを直接テストする

ブラウザまたはcurlを使用して:

curl -v https://yoursite.com/wp-json/wcpos/v1/

JSONの前に予期しないコンテンツがないか確認します。

5. 文字エンコーディングを確認する

データベースとPHPがUTF-8を使用していることを確認:

  • wp-config.phpの文字セット設定を確認
  • データベーステーブルがUTF-8であることを確認
  • 問題を引き起こす特別な文字を探します

関連エラー

  • API04001 — 無効なレスポンス形式
  • API04005 — JSONの復旧を試みました