2012-02-08 13 views
2

JavascriptまたはjQueryを使用すると、外部リンクが利用可能かどうかをどのように確認できますか?jQuery外部リンクの確認

SOPhereと同じ問題)に違反するため、$.ajax()コールは利用できません。 JSONPについて読んだことがありますが、外部サーバーからデータをロードしたくないため、よりストレートなソリューションがあるかどうかを知りたいと思います。私が必要とするのは、それが到達可能かどうかを確認することだけです。


EDIT(答)

私は、次のコードでそれを解決:唯一の問題は、今、私はParse errorを得るということですが、どのような場合には、それがあれば確認することができ

$.ajax({url: 'http://www.example.com', 
     type: 'GET', 
     dataType: 'jsonp', 
     complete: function(jqXHR, textStatus) { 
       console.log(jqXHR.status); // '200' = url reachable 
     }, 
     timeout: 2000 
}); 

外部リンクが機能しています。

+0

あなたに役立つようです:http://stackoverflow.com/questions/635231/javascript-checking-if-page-is-valid – ParPar

答えて

2

を見てみましょう。

YQL Console

+0

私がよく理解しているのであれば、YQLを使うには、http://query.yahooapis.com/...のような外部リンクへのGET呼び出しを行う必要があります。 Javascriptを使用して外部データを受け取ることができないため、同じ問題が発生します。たぶん私はそれをよく理解していない...私は何かを欠いている? – Pablo

+0

@Pabloはい、そうです。 JSONPについていくつかの調査を行い、YQLレスポンスでそれを使用します。 – alex

+0

最後に、私は別の方法で解決しましたが、あなたの答えは私がどこから始めるべきかを知る助けになりました。 – Pablo

1

サーバー側の言語にアクセスできますか? AJAXを使用してPHPなどの外部ファイルを使用するローカルファイルを呼び出すことができます。

あなたがPHPの一部を支援する必要がある場合は、URLがそのJSONPインタフェースを介して利用可能であるかどうかをチェックするためにYQLを使用することができhttp://www.catswhocode.com/blog/amazing-things-to-do-with-php-and-curl

+0

Unfortunatellyいいえ...私はjavascript(またはjQuery ) – Pablo

1

はい、フラッシュをサポートするブラウザでは、thisプラグインを使用できます。それはネイティブxhrと同じapiを持っています。さらに、ブラウザにフラッシュプラグインがない場合でも、他のドメインにアクセスできます。一部のブラウザでは、ターゲットドメインのレスポンスに次のヘッダーがある場合、エラーは発生しません。

Access-Control-Allow-Methods: GET, POST, OPTIONS 
Access-Control-Allow-Credentials: true 
Access-Control-Allow-Origin: * 
Access-Control-Allow-Headers: Content-Type, * 

*を適切なドメインに置き換えます。

上記の方法は、第2ドメインがあなたの支配下にある場合にのみ適用されます。そうでなければ、Jleagleが言ったようにプロキシを使う必要があります。

関連する問題