質問: 'http://example.com/hoge.js'; document.body.appendChild(script); ``` example.comは外部ドメインとします。 この場合クロスドメイン制約になりますでしょうか? また制約にひっかかる場合、スクリプトのダウンロードはブラウザでされますか? すぐに試せる環境がないのと、そのあたりのフローが曖昧だったので、 ご教授願いたいです。 よろしくお願いします。
回答: scriptタグを使った場合、CORSの `Access-Control-***` ヘッダがなくとも、別オリジンからスクリプトを読み込んで実行することができます。 実際、CORSが普及する前にクロスオリジンの通信を行う方法として使われていたJSONPは、サーバーから送りたいデータをJavascriptコードの形にしてscriptタグで読み込ませることで、クロスオリジンでのデータの受け渡しを可能にしていました。 ただしCORSが全く無関係というわけではなく、別オリジンのスクリプトで発生したエラーを `window.onerror` で読み取る際に制限があります。これを回避したい場合は `Access-Control-***` ヘッダが必要になるようです。 * 同一オリジンポリシー - Web セキュリティ | MDN * how to fix the cryptic "Script error." in javascript ? | ravikiranj.net