次のコードを含むHtmlファイルをローカルに持っています
<h1>This is session token </h1>
<div id="noob"></div>
<script src="http://code.jquery.com/jquery-1.9.1.min.js" type="text/javascript"></script>
<script>
$(document).ready(function(){
var sessiontoken;
var randomUser = Math.round(Math.random() * 1000000);
var supportCors = $.support.cors;
var sessiontoken ;
$.support.cors = true;
$.ajax({
type: 'POST',
url: "https://abc.com/Gateway.Session/Session",
dataType: "json",
data: {
UserId: "TestUser" + randomUser,
CSK1: "abc",
CustId: "cde"
},
success: function (data) {
$.support.cors = supportCors;
sessiontoken=data.Token;
alert(sessiontoken);
document.getElementById('noob').innerHTML = sessiontoken;
},
error: function (xhr, textStatus, error) {
$.support.cors = supportCors;
alert("responseText: " + xhr.responseText);
alert("XHR statusText: " + xhr.statusText);
alert("textStatus: " + textStatus);
alert("error: " + error.message);
}
});
});
</script>
このコードをローカルで実行すると (例: c:/development/mypage.html)、IE7 の「javascript の実行を許可する」ポップアップを有効にした後、セッション トークンが生成されます。つまり、上記の JavaScript の ajax 関数は、実行時に「成功」を返します。ローカルでセッショントークンが生成されるのですが、このコードをサーバーにデプロイし、IE7 のように (http://localhost:8080/mypage.html) で開くと、上記のスクリプトの ajax 関数が「エラー」を返します。
ファイルをローカルで実行するときと同様に、ポップアップを有効にしてスクリプトを実行できるようにしました。ただし、ファイルがサーバーにデプロイされている場合、サーバーから html ページにアクセスしたときに JavaScript が実行されるため、ポップアップは表示されません。サーバーからファイルするときに、制御が「エラー」部分または「成功」になる理由を理解できません
では、サーバーからアクセスしたときにこの ajax 関数を「成功」部分に戻すにはどうすればよいですか。
ローカルまたはサーバーからアクセスすると、ファイルはクロムで正常に実行されます。IE7で動作する必要があります。