我做這樣使用XDomainRequest爲IE跨域請求之外:要使用XDomainRequest的響應函數「負荷」
<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返回的內容可以聲明爲全局或類似的東西。例如:最後一行$ j('#result')。html(urlToOpen)假裝分配「urlToOpen」的值,但這不起作用。我怎樣才能做到這一點?
不,它沒有工作。我在這裏複製我編輯代碼的方式。我得到警報(這意味着負載運行良好)。但「測試」的價值沒有打印出來,認爲它沒有被宣佈爲全球。 if($ j.browser.msie && window.XDomainRequest)myApp_xdr = new XDomainRequest(); myApp_xdr.open(「get」,openxUrl); myApp_xdr.onload = function(){ test =「test」; 警報(「alert worked」); }; myApp_xdr.send(); } $ j('#result')。html(test); – Saymon
你做錯了,請檢查Chrome開發工具,並檢查參考,你走了,我相信這個小提琴證明我的問題的解決方案點:http://jsfiddle.net/bitoiu/78vCH/ – bitoiu