2013-12-16 2 views
0

서비스를 실행하는 서버가 있습니다. 서비스가 준비 될 때 알 수 있도록 ping 요청을 일부 간격으로 실행하고 싶습니다. 내가 SoapUI가 서비스 및로드 전화를 사용할 때jQuery AJAX를 통한 SOAP 요청

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; 
} 

:합니다 (setInterval() 함수에 포함됩니다)

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
        xmlns:dvt="[private]"> 
    <soapenv:Header /> 
    <soapenv:Body> 
     <dvt:Ping/> 
    </soapenv:Body> 
</soapenv:Envelope> 

그리고 다음과 같은 자바 스크립트 기능 :

는 다음 ping.dat 파일을 얻었다 핑 요청, 그것은 작동합니다.

I는 JS 기능, 브라우저 보고서를 사용하는 경우 :

OPTIONS [비공개 200 (OK) JQuery와-1.10.2.js을 : 8706

XMLHttpRequest를로드 할 수 없음 [비공개]. 'Access-Control-Allow-Origin'헤더가 요청 된 리소스에 없습니다. 따라서 'http : / / localhost : 8080'은 액세스 할 수 없습니다.

답변

1

메시지가 분명합니다. 요청한 리소스에 'Access-Control-Allow-Origin'헤더가 없습니다.

실제로 상호 도메인 Ajax 요청을하는 경우 서버는 적절한 HTTP 헤더로 응답해야합니다. 브라우저는 OPTIONS HTTP 요청을 발행하고 서버가 수신 된 헤더를보고 액세스를 "승인"하는지 확인합니다. 헤더가 누락 된 경우 브라우저는 오류를 반환하고 요청을 자원에 허용하지 않아야합니다.

은 자세한 내용은 여기를 참조하십시오 : 브라우저가 같은 SoapUI 작동에서 웹 서비스를 핑 이유가 그래서 HTTP access control (CORS)

SoapUI가, the same origin security policy의 영향을받지 않습니다.