jqueryでロードするajaxスクリプトを使用しているときに、いくつかの奇妙な動作を実行しています。このページを自分のコンピューターでローカルに実行するとすべて問題ありませんが、オンラインで (DropBox で) 実行すると、(コンソールで) 参照エラー: sjcl is undefined と表示されてロードに失敗します。
これはページです(スクリプト付き):
<!DOCTYPE html><html lang="fr"><head><meta charset="utf-8"><title>Pack Résidanat — par @Anonyme</title><meta name="viewport" content="width=device-width, initial-scale=1.0"></head><body>
<font face="monospace"><div id="status"></div></font>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
$(function(){
$("#status").append("Chargement du décrypteur... ");
$.ajax({
url:"http://dl.dropboxusercontent.com/s/5tsysv6hmneaxop/foo.js",
type:"GET",
dataType:"script",
success:function(data){
$("#status").append("[OK]<br/>Chargement de la clé de cryptage... ");
$.ajax({
url:"http://dl.dropboxusercontent.com/s/70d5avb1s7s7shd/crkey.js",
type:"GET",dataType:"script",
success:function(data){
$("#status").append("[OK]<br/>Chargement du pack... ");
$.ajax({
url:"http://dl.dropboxusercontent.com/s/nxxpecpdci9gtbd/pack.js",
type:"GET",
dataType:"script",
success:function(data){
$("#status").append("[OK]<br/>Décryptage du pack...<br/>");
$("#status").fadeOut("slow",function(){document.write(unescape(sjcl.json.decrypt(crkey,pack)));});
},
error:function(data){
$("#status").append("[ERROR]<br/>Erreur lors du chargement du pack.");
}
});
},
error:function(data){
$("#status").append("[ERROR]<br/>Erreur lors du chargement de la clé de cryptage.");
}
});
},
error:function(data){
$("#status").append("[ERROR]<br/>Erreur lors du chargement du décrypteur.");
}
});
});
</script>
</body></html>
そして、これはオンライン版です: http://dl.dropboxusercontent.com/s/5o3r2bfknw93h62/pack.html
sjcl (Stanford Javascript Crypto Library http://crypto.stanford.edu/sjcl/ ) は、最初に正常にロードした foo.js ファイルで定義されています。
foo.js は厳密モードをグローバルに使用します ("use strict")。
問題が見えますか?
PS: 私の悪い、貧弱で醜い英語で申し訳ありません..
奇妙な部分:
ページと foo.js ファイルが同じサーバーでホストされている場合、「成功」という jquery ajax でロードに失敗します。
http://dl.dropboxusercontent.com/s/5o3r2bfknw93h62/pack.html http://copy.com/kqIL8nF0WQjX/pack2.html
それらが異なるサーバーでホストされている場合、問題なく動作します (1 つは Dropbox に、もう 1 つは Copy.com に):
http://copy.com/tkGTmnJlJxS3/pack.html http://dl.dropboxusercontent.com/s/q3cnv2qdc7vjirh/pack2.html
手がかりはありますか?