0
function check()
{
    if (window.XMLHttpRequest){
            // code for IE7+, Firefox, Chrome, Opera, Safari
                var request = new XMLHttpRequest();
        }
        else{
            // code for IE6, IE5
            var request = new ActiveXObject("Microsoft.XMLHTTP");
        }

        dname="http://www.w3schools.com/js/default/gfdghkjfdh.html";
        request.open("HEAD", dname,true);
        request.send();
        if(request.status !== 404){ 
            window.location.href=dname;
        }
        else{
            window.location.href="http://www.google.com";
        }
    }    

上記のコードは、サーバーが接続されているかどうかを確認するだけで、URL の最後の部分「gfdghkjfdh.html」が使用可能かどうかは確認していません。

URL " http://www.w3schools.com/js/default/gfdghkjfdh.html " を正しく javascript またはクライアント側のテクノロジを使用してチェックする方法があります。誰でも私を助けてください

4

1 に答える 1

0

上記のコードは、サーバーが接続されているかどうかを確認するだけで、URL の最後の部分「gfdghkjfdh.html」が使用可能かどうかは確認していません。

いいえ、そうではありません。XHR はサード パーティのサーバーに HTTP 要求を送信しますが、そのサーバーから取得した情報を他のユーザーのページで実行されている JavaScript に公開する許可を与える CORS ヘッダーを取得せず、ステータスをスクリプトに公開しません。

"http://www.w3schools.com/js/default/gfdghkjfdh.html"JavaScriptまたはクライアント側のテクノロジーを使用して、URLを正しくチェックする方法はあります。

JavaScript? いいえ。

他のクライアント側のテクノロジー? 多分。

署名された Java アプレットは、(モバイルではない) Java をサポートするプラットフォームでユーザーが実行していて、Java がインストールされていて、セキュリティ アラートを受け入れ、最初からブラウザーで Java を許可している場合 (最近のセキュリティ問題の数を考えると、素晴らしいアイデアではありません))。

ActiveX コントロールは、できる場合があります (ユーザーが Windows で十分に古いバージョンの Internet Explorer を実行していて、セキュリティ アラートを受け入れる場合)。

フラッシュ…おそらくできませんでした。許可を与えるには crossdomain.xml ファイルが必要だと思います。

それで、他のクライアント側の技術は?たぶん、しかし実用的な方法ではありません。

独自のサーバーに対して XMLHttpRequest を作成し、独自のサーバーにサードパーティのサーバーへの接続を試行させることができます。これにより、独自のサーバーの負荷が増加し、サーバーとサードパーティ サーバー間の接続が、サーバーとクライアント間の接続と異なる場合があります。

于 2013-04-10T18:14:43.197 に答える