25332

[code]

    var script = document.createElement('script');
    script.src = 'http://example.com/hoge.js';
    document.body.appendChild(script);
    
[/code]

example.comは外部ドメインとします。  
この場合クロスドメイン制約になりますでしょうか？

また制約にひっかかる場合、スクリプトのダウンロードはブラウザでされますか？

すぐに試せる環境がないのと、そのあたりのフローが曖昧だったので、  
ご教授願いたいです。

よろしくお願いします。


CC BY-SA 3.0
2016-05-31T05:09:49.577
25326
2016-05-31T07:07:12.010
2016-05-31T06:31:27.297
8000
5839
question
javascript
動的に追加したscriptとクロスドメインについて


scriptタグを使った場合、CORSの `Access-Control-***`
ヘッダがなくとも、別オリジンからスクリプトを読み込んで実行することができます。

実際、CORSが普及する前にクロスオリジンの通信を行う方法として使われていたJSONPは、サーバーから送りたいデータをJavascriptコードの形にしてscriptタグで読み込ませることで、クロスオリジンでのデータの受け渡しを可能にしていました。

ただしCORSが全く無関係というわけではなく、別オリジンのスクリプトで発生したエラーを `window.onerror`
で読み取る際に制限があります。これを回避したい場合は `Access-Control-***` ヘッダが必要になるようです。

  * [同一オリジンポリシー - Web セキュリティ | MDN](https://developer.mozilla.org/ja/docs/Web/Security/Same-origin_policy)
  * [how to fix the cryptic "Script error." in javascript ? | ravikiranj.net](http://ravikiranj.net/posts/2014/code/how-fix-cryptic-script-error-javascript/)


CC BY-SA 3.0
2016-05-31T07:07:12.010
25332
2016-05-31T07:07:12.010
8000
25326
answer