jQueryのcrossDomainオプションが効かない


<http://example.com> から、以下のコードを実行すると、

[code]

    var url = 'http://www.yahoo.co.jp';
    
    $.ajax(url, {
      crossDomain: true,
      success: function(res) {
        console.log(res);
      }
    });
    
[/code]

以下のようなエラー表示されます。

[code]

    XMLHttpRequest cannot load http://www.yahoo.co.jp. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://**.**.**.**' is therefore not allowed access.
    
[/code]

crossDomainオプションを有効にしているのになぜでしょうか？




クロスドメインでアクセスする場合はアクセス先のサーバーがレスポンスのヘッダに `Access-Control-Allow-Origin`
を追加していない限りアクセスすることはできません。

アクセス先の設定をいじれない場合は
[`jquery.xdomainajax.js`](https://github.com/padolsey/jquery.fn/blob/master/cross-
domain-ajax/jquery.xdomainajax.js) というプラグインを使用するとアクセスできるようです。

下のコードで動作確認は出来ましたが、 `jquery.xdomainajax.js` は Yahoo API を経由してレスポンスを取得するという実装のため
Yahoo! 側が API の提供を停止する等してしまうと使用不能になるかもしれません。

[code]

    <!DOCTYPE html>
    <html>
    <head>
        <script src="http:////ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
        <script src="./jquery.xdomainajax.js" type="text/javascript"></script>
    </head>
    <body>
        <script>
            var url = 'http://www.yahoo.co.jp';
            $(document).ready(function(){
                $.ajax({
                    url:url,
                    type: 'GET',
                    cache: false,
                    success: function(res) {
                        console.log(res);
                    }
                });
            });
        </script>
    </body>
    </html>
    
[/code]




クロスドメインでアクセスする場合はアクセス先のサーバーがレスポンスのヘッダに `Access-Control-Allow-Origin`
を追加していない限りアクセスすることはできません。

アクセス先の設定をいじれない場合は
[`jquery.xdomainajax.js`](https://github.com/padolsey/jquery.fn/blob/master/cross-
domain-ajax/jquery.xdomainajax.js) というプラグインを使用するとアクセスできるようです。

下のコードで動作確認は出来ましたが、 `jquery.xdomainajax.js` は Yahoo API を経由してレスポンスを取得するという実装のため
Yahoo! 側が API の提供を停止する等してしまうと使用不能になるかもしれません。

[code]

    <!DOCTYPE html>
    <html>
    <head>
        <script src="http:////ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
        <script src="./jquery.xdomainajax.js" type="text/javascript"></script>
    </head>
    <body>
        <script>
            var url = 'http://www.yahoo.co.jp';
            $(document).ready(function(){
                $.ajax({
                    url:url,
                    type: 'GET',
                    cache: false,
                    success: function(res) {
                        console.log(res);
                    }
                });
            });
        </script>
    </body>
    </html>
    
[/code]

