我有一臺運行服務的服務器,我想以某個時間間隔向服務運行ping請求,以便我可以知道它何時準備就緒。通過jQuery的SOAP請求AJAX
得到以下ping.dat
文件:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:dvt="[private]">
<soapenv:Header />
<soapenv:Body>
<dvt:Ping/>
</soapenv:Body>
</soapenv:Envelope>
而且下面的JavaScript功能(將被納入setInterval()
功能):
function doAjax() {
//load request document
$.ajax({
cache: false,
crossDomain: true,
async: true,
dataType: 'xml',
type: 'POST',
data: null,
url: "./ping.dat",
error: function(xhr, sta, err){ alert(err); },
success: function(ret, sta, xhr){
//ping service
$.ajax({
cache: false,
crossDomain: true,
async: false,
processData: false,
contentType: "text/xml; charset=\"UTF-8\"",
dataType: 'xml',
data: processXML(xhr.responseText),
type: 'POST',
url: "[private]",
error: function(xhr, sta, err){
alert(err);
},
success: function(ret, sta, xhr){
$('#response').text($.trim(ret));
},
complete: function(xhr, sta){
alert('complete');
},
});
}
});
}
function processXML(text){
var ret = null;
if ((typeof(ret) !== 'undefined')&&(text !== null)&&(text.length !== 0))
ret = $.trim(text.replace(/[\n\t]+/g, ''));
return ret;
}
當我使用了SoapUI調用服務和負載ping請求,它的工作原理。
當我使用JS的功能,瀏覽器報告:
OPTIONS [私人] 200(OK)的jquery-1.10.2.js:8706
的XMLHttpRequest不能加載[私人]。請求的資源上沒有「Access-Control-Allow-Origin」標題。 Origin'http:/ / localhost:8080'因此不被允許訪問。
這是什麼原因造成的?