現在、Chrome のユーザー スクリプト/拡張機能に取り組んでおり、「ある Web サイト」から JSON データを取り込もうとしています。これが私のアプローチでした:
$.get( "http://cloud.hartwig-at.de/~oliver/superuser.json",
function( data ) { console.log( data ); }
);
もちろん、それは次のエラーにつながります。
XMLHttpRequest はhttp://cloud.hartwig-at.de/~oliver/superuser.jsonを読み込めません。Origin http://superuser.comは Access-Control-Allow-Origin で許可されていません。
Origin 'url' is not allowed by Access-Control-Allow-Origin (他の質問の中でも)を読んだ後、解決できました。したがって、これは次のバージョンです。
$.get( "http://cloud.hartwig-at.de/~oliver/superuser.json",
function( data ) { console.log( data ); },
"jsonp"
);
悲しいことに、別のエラーが発生します。
キャッチされていない SyntaxError: 予期しないトークン: (superuser.json:2)
また、「リソースはスクリプトとして解釈されましたが、MIME タイプ text/plain で転送されました:」という警告も表示され、問題の原因がすでにわかっていました。(さらに詳細はChrome から提供され、「リソースはスクリプトとして解釈されましたが、MIME タイプ text/plain で転送されました。」と表示されましたが、何が得られますか? )
どうやら、HTTP サーバーは私のファイルに適切な MIME タイプを送信する必要があるようapplication/json
です。
さて、必要な変更をすぐに追加してmime.types
、もう一度やり直しました。しかし、サイコロはありません!警告は消えましたが、エラーは消えませんでした。私はまだ得Uncaught SyntaxError: Unexpected token :
ます。(これを修正するために以前にmimeType
パラメーターを利用しようとしたこともありましたが、結果は同じでした。)
ただし、MIME タイプは正常に見えます。
今、私はややアイデアがありません。ファイルの内容はhttp://www.jslint.com/.json
で正常に検証されます