私は基本的に、これを ajax get shorthand の Web サイトからコピーしただけです。$ が定義されていないと言い続けます。
$.get('https://api.parse.com/1/classes/chats?order=-createdAt', function(data) {
console.log(data)
}
);
なぜこれが起こっているのですか?
@Sergioのコメントに基づいて構築すると、次のようなものが必要になります。
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script type="text/javascript">
$.get('https://api.parse.com/1/classes/chats?order=-createdAt', function(data) {
console.log(data)
});
</script>
ただし、これをローカル ファイルとしてロードしている場合、ブラウザはそのように jQuery ライブラリをロードできません。これは、ローカル ファイルをロードすると、アドレス バーが のようになるためですfile:///<path to file>
。
を使用してスクリプトをロードするsrc="//<script
と、基本的にブラウザに「このページをロードするときに使用したプロトコルを入力してください」と指示されます。したがって、 経由http://somesite
でページに移動した場合、ブラウザはプロトコルとして「http:」を使用します。ただし、ローカル ファイルをロードすると、ブラウザーは "file:" をプロトコルとして使用するため、jQuery をロードしようとします file://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js
が、もちろん機能しません。
ブラウザがこれを許可するのはなぜですか? いくつかのファイルを含むこの素敵なサイトをコーディングしたと想像してください。ただし、それらは http として含まれています。ただし、そのサイトを本番環境に置くときは、安全である必要があるため、https として実行します。最新のブラウザのほとんどは、そのスクリプトを読み込もうとすると「安全でないコンテンツ」の警告を表示し (http を使用しているため、安全ではないため)、一部のブラウザは黙って読み込みに失敗します (jQuery や他の JavaScript ライブラリの場合)。 、これにより、ページのセグメント全体が機能しなくなる可能性があります)。プロトコルを省略すると、ブラウザーは、ユーザーがページ全体に対して要求したプロトコルに基づいて、使用するプロトコルを決定できます。
これが現在直面している問題である場合 (この方法でページを読み込んでいる場合は、そうであると思います)、これが必要なコードです。
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
ただし、このページを本番環境に置いたら、必ず元に戻してください。