Google Chromeでページを読み込むと、コンソールに漠然としたエラーが表示されます。
キャッチされないSyntaxError:予期しない入力の終了
何が原因なのか、私にはわかりません。このエラーをデバッグするにはどうすればよいですか?
<script>https://example.com/a.js</script>
、そうであったはずです<script src="https://example.com/a.js"></script>
Google Chromeでページを読み込むと、コンソールに漠然としたエラーが表示されます。
キャッチされないSyntaxError:予期しない入力の終了
何が原因なのか、私にはわかりません。このエラーをデバッグするにはどうすればよいですか?
<script>https://example.com/a.js</script>
、そうであったはずです<script src="https://example.com/a.js"></script>
回答:
この特定のエラーは、 v8。ほとんどの場合、JavaScriptは何らかの方法で壊れています。たとえば、}
そのような何かが欠けています。
与えられた例では、これも「予期しない入力の終了」をもたらします:
eval('[{"test": 4}') // notice the missing ]
しかし、問題の根本的な原因は、要求されたJSON urlに、ChromeがHTMLとして解析しようとしているContent-Typeがtext/html
含まれていることであり、その結果、含まれているイメージタグが含まれているため、予期しない入力の終了が発生します。解析されました。
Content-Typeをtext/plain
、問題が解決するはずだと思うように設定してみてください。
それにもかかわらず、V8は、入力が予期せず終了した正確な場所を正確に伝えることで、より良い仕事をすることができます。
Firebug for Mozillaを試してみてください}
。欠けている位置が表示されます。
ctrl+shift+i
が教えてくれます。
記録のために、このエラーのさまざまな原因を見つけようとしている人のために。空のHTML5データ属性
data-mydata = ''
エラーも引き起こします。データ値がnull文字列であり、属性をまったく含まない場合を確認する必要があります。言うまでもなく、これはスクリプトで生成されたHTMLに大きく関係しています。
data-setup='{"example_option":true}'
すべてを削除した後、うまくいきました。
私にとっての問題はdataType: "json"
、HTTP 201(作成済み)を返し、リクエスト本文がないPOSTリクエストに対して$ .ajaxを実行していたことです。修正は、単にそのキー/値を削除することでした。
私の場合、javascriptを動的に追加し、文字列テンプレートで二重引用符を2回使用していたため、2番目の引用符を単一引用符に変更すると、エラーは発生しなくなりました。同じ理由でここに来る人々の一部に役立つことを願っています。
アンカータグでエラーが発生した場合は、「Onclick」を「href」に、または「href」を「Onclick」に置き換えてください。
Content-length
ヘッダーが応答に含まれているよりも多くのバイトを指定している、またはおそらくサーバーが何らかの理由で無効なHTMLを送信しています。