1. ホーム
  2. Web プログラミング
  3. ジャバスクリプト

[解決済み】Uncaught SyntaxError: JSONの位置0に予期しないトークンuがあります。

2021-12-28 14:50:08

質問

チェックアウト時と個別の商品ページでのみ、コンソールログに以下のエラーが表示されます。

VM35594:1 Uncaught SyntaxError: Unexpected token u in JSON at position 0
    at JSON.parse (<anonymous>)
    at run (layout.min.js:9)
    at app.min.js:1
    at main.min.js:2
    at Object.execCb (require.min.js:112)
    at Module.check (require.min.js:56)
    at Module.<anonymous> (require.min.js:72)
    at require.min.js:11
    at require.min.js:74
    at each (require.min.js:3)

私は1ページチェックアウトの拡張機能を使用していますが、それを無効にすると、エラーはまだ表示されます。商品ページのレビューが関係しているのではないかと思いましたが(レビューをタブの外に出したので)、その変更を元に戻しても、商品ページのエラーは直りませんでした。

解決するには?

コンソールで試してみてください。

JSON.parse(undefined)

以下は、その内容です。

Uncaught SyntaxError: Unexpected token u in JSON at position 0
    at JSON.parse (<anonymous>)
    at <anonymous>:1:6

言い換えれば、あなたのアプリは undefined これは有効な JSON ではありません。

これには2つの共通の原因があります。ひとつは、存在しないプロパティ(あるいは、ストリクトモードでない場合は存在しない変数)を参照している可能性があることです。

window.foobar = '{"some":"data"}';
JSON.parse(window.foobarn)  // oops, misspelled!

2つ目の一般的な原因は、そもそもJSONを受信できないことです。これは、クライアント側のスクリプトがエラーを無視して、本来は送信すべきでないのにリクエストを送信していることが原因である可能性があります。

サーバーサイドとクライアントサイドのスクリプトが両方とも ストリクトモード を使用し、lintを行います。 ESLint . これで、誤字脱字がないことはかなり確信が持てるでしょう。