45145


xmlhttprequestを使ってみようと思い以下のようなコードを書いたのですが、  
onloadが実行されず必ずonerrorが呼び出されます。  
どうすればonloadが呼び出されるでしょうか

[code]

    <html>
    <head>
    <script>
    function fn()
    {
        alert("RUN!");
        var xhr = new XMLHttpRequest();
        var url="http://www.yahoo.co.jp";
    
        xhr.open("GET", url, true);
    
        xhr.onload = function (oEvent) {
            alert("on load");
        };
    
        xhr.onerror=function(oEvent){
            alert("on error");
        }
        xhr.send(null);
    };
    </script>
    </head>
    
    <body>
    <button type="button" name="btn" onclick="fn()">ボタン</button>
    </body>
    
    </html>
    
[/code]


CC BY-SA 4.0
2018-06-29T05:28:18.373
45143
2018-06-29T06:19:30.007
18637
question
javascript html
xmlhttprequest　onloadが呼ばれずonerrorしか呼ばれない


あるWebサイトから別の悪意のあるWebサイトの情報を読み込んで実行させないための仕組みとして`Same-Origin
Policy(同一生成元ポリシー)`というのがブラウザ、Yahoo!Japanで適応されているため、`xhr`や`fetch`で情報を取得することが出来ません。

もしYahoo!JapanのWebサイトの内容を読み込んでこのJSの`onload`のほうを実行させるためにはYahoo!Japanのサーバー側で貴方のドメインからの読み込みを可能に(CORS対応)してもらう必要があります。

CORS(Cross Origin Resource Sharing)に関しては以下を見るとわかりやすいと思います。  
<https://qiita.com/tomoyukilabs/items/81698edd5812ff6acb34>


CC BY-SA 4.0
2018-06-29T06:14:24.687
45145
2018-06-29T06:19:30.007
2018-06-29T06:19:30.007
28772
28772
45143
answer