例子:使用XHR對象和Ext2.0的Ajax對象給一個ArcIMS伺服器發送請求,並返回結果。
var axl = '<?xml version="1.0" encoding="UTF-8"?>/n<ARCXML version="1.1">/n<REQUEST>/n<GET_SERVICE_INFO renderer="false" extensions="false" fields="false" />/n</REQUEST>/n</ARCXML>/n';
var url='http://www.studioat.it/servlet/com.esri.esrimap.Esrimap?ServiceName=ComuneGarzeno&Form=False&ClientVersion=4.0';
//XHR例子
var http;
Ext.get('oKButton2').on('click', function(){
http = getHTTPObject();
if ((http != null)) {
http.open("POST", urls, true);
http.onreadystatechange = parseLayers;//IMS服務資訊將由parseLayers解析
http.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
http.send(axl);
}
});
function parseLayers(){
if (http.readyState == 4) {
if (http.status == 200) {
var result = http.responseText;
alert(result);//一切正常
} else alert("Error retreiving data");
}
}
function getHTTPObject() {
var xmlhttp;
//MOZILLA FireFox
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
//IE
} else if (window.ActiveXObject) {
var aVersions =['MSXML2.XMLHttp.5.0','MSXML2.XMLHttp.4.0','MSXML2.XMLHttp.3.0','MSXML2.XMLHttp','Microsoft.XMLHTTP'];
for(var i=0;i<aVersions.length;i++){
try{
xmlhttp = new ActiveXObject(aVersions[i]);
}catch(e){}
}
}
return xmlhttp;
}
但使用Ext2.0的AJAX方法:
Ext.get('oKButton').on('click', function(){
Ext.Ajax.request({
url :urls,
headers:{'Content-Type' : 'text/xml'},
params :axl,
method: 'post',
//xmlData:axl,也可以
success: function ( result, request ) {
alert(result.responseText);
},
failure: function ( result, request) {
Ext.MessageBox.alert('Failed', 'Successfully posted form:');
}
});
});