-5

私は基本的に、これを ajax get shorthand の Web サイトからコピーしただけです。$ が定義されていないと言い続けます。

 $.get('https://api.parse.com/1/classes/chats?order=-createdAt', function(data) {
   console.log(data) 
}
);

なぜこれが起こっているのですか?

4

1 に答える 1

5

@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>

ただし、このページを本番環境に置いたら、必ず元に戻してください。

于 2013-08-09T17:22:46.463 に答える