この方法で XDomainRequest を使用して、IE のクロス ドメイン リクエストを実行しています。
<div id="result"></div>
<script type="text/javascript">
var urlToOpen;
var openxUrl = "http://DOMAIN.com/www/delivery/apu.php";
if ($j.browser.msie && window.XDomainRequest) {
// Use Microsoft XDR
var xdr = new XDomainRequest();
xdr.open("get", openxUrl);
xdr.onload = function() {
urlToOpen = xdr.responseText;
};
xdr.send();
}
$j('#result').html(urlToOpen)
</script>
コードは正しい値を返しますが、Ajax の戻り値を (xdr.onload の関数内だけでなく) 他の関数で使用したいので、xdr.responseText で返されるものを global またはとして宣言できる必要があります。そんな感じ。
例: 最後の行 $j('#result').html(urlToOpen) は、"urlToOpen" の値を割り当てるふりをしていますが、これは機能しません。どうすればこれを達成できますか?