0

jQuery ロード メソッドを使用してページをロードし、メタ データを取得しています。タイトル、説明など。これは簡単な方法のようです。

しかし、任意の URL に対して jQuery メソッドによってリクエストが行われるたびに、キャンセルのステータスが取得されます。なぜそれが起こっているのですか?それはブラウザに関連するものですか、それともサーバーがそれを妨げていますか?

私が使用している私のコードは次のとおりです。

$('.link').load('http://' +$('#link').val(), function (response, status, xhr) {
   if (status == 'error') {
     $('.linkinfo').html('Not a valid link!');
   } else {
     $('.linkinfo').html($(response).filter('title').text());
   }
 });

そのための HTML コードは次のとおりです。

<input type="text" id="link" onkeyup="" />
<div class="linkinfo"></div>
<div class="link"></div>

入力は、 や などのリンクのいずれかになりwww.google.comますwww.facebook.com。彼らのメタデータを取り出したいだけです。ただし、status == 'error'ブロックは毎回実行されます。

開発者ツールの [ネットワーク] タブを使用して行われた各リクエストについてメモを取っています。Chrome ではキャンセルされ、Mozilla Firefox では一時的に移動されました。

4

1 に答える 1

0

同じオリジン ポリシーである可能性があります。

追記事項のjQuery load()メソッドをチェックすると

api.jquery.com/load

ブラウザーのセキュリティ制限により、ほとんどの "Ajax" 要求は同一オリジン ポリシーの対象となります。要求は、別のドメイン、サブドメイン、またはプロトコルからデータを正常に取得できません。

同一オリジン ポリシー:

http://en.wikipedia.org/wiki/Same_origin_policy

于 2013-11-14T17:51:51.520 に答える