0
我的config.xml的「域訪問權限」設置爲「*」。 我沒有可能更改遠程服務器的頭文件(它是一個硬件設備)。 我的跨域jQuery.ajax調用效果很好。 但是,如果我使用XMLHttpRequest進行相同的調用,他們不起作用! (我從jQuery切換到XHR,因爲我需要把Ajax放入網絡工作者)。Cordova,ajax跨域調用使用jQuery但不使用XMLHttpRequest
我使用這個功能:
myapp.ajax=function(){
var o = arguments[0]||{},
url = o.url||null,
cache = o.cache||true,
timeout = o.timeout||0,
callback = arguments[1]||function(){}
;
if(!url)return null;
var myRequest = new XMLHttpRequest();
myRequest.timeout = timeout;
var urlToCall=url;
if(!cache){
urlToCall += urlToCall.indexOf('?')==-1 ? '?' : '&' ;
urlToCall += '_=' + Date.now() ;
}
myRequest.onreadystatechange=function() {
if (myRequest.readyState == 4) {
if (myRequest.status == 200) {
callback(myRequest.responseText,'success',myRequest);
} else {
callback(myRequest,'error',myRequest.statusText);
}
}
}
myRequest.open("GET",urlToCall,true);
myRequest.setRequestHeader("Access-Control-Allow-Origin", "*");
myRequest.setRequestHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
myRequest.setRequestHeader("Access-Control-Allow-Methods","POST, GET, OPTIONS, DELETE, PUT, HEAD");
myRequest.send(null);
}