ターゲット Web サイトから js ファイルを取得する自動 JSLint テストをセットアップしようとしています。次に、Selenium を使用して、Js ファイルの URL を使用して JSLint テストを実行するテスト サイトに対して実行します。
これをローカルでテストしようとすると、2 つの異なる localhost Web サイトで問題が発生します。
$(function () {
$.ajax({
url: "http://code.jquery.com/jquery-latest.min.js",
//url: "http://localhost:62338/Scripts/test.js", // url to other local site
dataType: "text"
}).done(function (data) {
var myResult = JSLINT(data);
..
});
});
jquery url を指す url を使用して上記のコードを実行すると、正常に動作し、JSLint がこのファイルを分析します。しかし、他のローカルホスト サイトの js ファイルを指定しようとすると、壊れてしまいます。Chrome で Network Inspector を表示すると、スクリプトの呼び出しがキャンセルされたと表示されます。
この方法でローカルにホストされている js ファイルにアクセスできない理由はありますか?
ちなみに、MVC4 Web プロジェクトを使用しています。
編集:CorsまたはIPを指している運がありませんでしたが、ドミニクの答えは最終的にこの質問につながりました.Chromeでセキュリティを無効にすることができます. このオプションはまったく好きではありませんが、すべての TeamCity をセットアップする前にローカルでテストするだけで、Chrome を再起動するとすぐに変更が元に戻されます。
Edit2 :この質問に対する2番目の回答も、次を追加することで機能しました。
<httpProtocol>
<customHeaders>
<clear />
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
</httpProtocol>
..ターゲット サイトの web.config に対して、Chrome でセキュリティを無効にすることなく、これを機能させることができました。ターゲット サイトは単なるダミー サイトであり、ローカルで使用されているため、これは私にとってははるかにうまく機能します。