0

私はJQueryが初めてです。私の要件は、別のドメインからのリンクを検証することです。成功した場合は、そのリンクにリダイレクト (ページを新しいウィンドウで開く) し、そうでない場合はアラートを表示します。

私が Jsfiddle で試したことを以下に示します。

$.ajax({ 
    url: "/user/login", 
    method: 'head', 
    error: function(){ 
        alert('Failure'); 
    }, 
    success: function(){ 
        alert("Success"); 
    } 
})

上記は URL の検証に成功しました。しかし、URL をhttp://www.google.comに変更すると、機能しません。コード スニペットを以下に示します。

$.ajax({ 
    url: "http://google.com", 
    method: 'head', 
    error: function(){ 
        alert('Failure'); 
    }, 
    success: function(){ 
        alert("Success"); 
    } 
})

なぜこれが機能しないのか、それを解決する方法はありますか? クロスドメイン検証が JQuery でサポートされていないことがわかりました。本当ですか?

4

1 に答える 1

1
<script>
    var testUrl = "http://www.google1.com";
    $.ajax({ 
        url: testUrl, 
        dataType: 'jsonp',
        crossDomain: true,
        timeout: 5000,
        complete: function( e, xhr, settings ) {    
            switch( e.status ) {
               case 200:
                   window.open( testUrl );
               break;
               default:
                   alert( 'Not Valid' );
                   return false;
               break;
            }
        }   
    });
</script>

または、AJAX リクエストを内部サーバー サイド スクリプトに送信し、PHPのcURL/などのサーバー サイド メソッドを使用してチェックします。get_file_contents()

于 2013-11-12T16:10:31.293 に答える