2014-03-26 3 views
0

AJAX에서 REST 서비스 메서드를 호출하고 있습니다.AJAX에서 REST 서비스 메서드 호출

$(document).ready(function() { 
     var xmml = getXmlLoginRequest(); 
     var wsdlURL = getWSDL('search'); 
     $.ajax({ 
      type: "POST", 
      url: wsdlURL, 
      data: xmml, 
      contentType: "text/xml;charset=utf-8", 
      dataType: 'text', 
      success: function (result) { 
       debugger; 
       alert(" success" + result); 
      }, 
      error: function (jqXHR, textStatus, errorThrown) { 
       debugger; 
       alert(" error" + "jq :" + jqXHR + "textStatus :" + textStatus + "error : " + errorThrown); 
      } 
     }); 

     function getXmlLoginRequest() { 
      debugger; 
      var xml = '<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> \ 
      <soap:Body> \ 
       <search> \ 
       <qry>svein </qry> \ 
       </search> \ 
      </soap:Body> \ 
      </soap:Envelope>'; 

      return xml; 
     } 
     function getWSDL(methodName) { 
      debugger; 
      var url = 'http:/MyURL/search.php?username=abc&password=def'; 
      return url; 
     } 

    }); 

성공 블록에서 결과가 비어 있습니다. dataType을 text으로 변경하면 오류 블록 (cannot parse NULL)에서 예외가 발생합니다.
잘못된 구문을 쓰고 있습니까? 메소드와 매개 변수로 브라우저에서 url을 실행하면 적절한 결과가 나타납니다.

+0

URL에 데이터를 확인한 코드에 문제가없는 것 같습니까? 돌아 오는거야? –

+0

예. xml 형식의 데이터를 반환합니다. – Nitish

+0

잘 모르겠지만 브라우저에서 실행할 수 있다면 GET해야합니까? 또는 브라우저에서 서비스를 호출하기 위해 일부 도구를 사용합니까? –

답변

1

여기서 보는 SOAP은 REST가 아닙니다. jQuery SOAP Plugin을 시도하고 jQuery AJAX 메소드를 직접 시도하면 안된다.

또한 WSDL URL은 서비스 URL이 아니라 서비스 설명의 URL입니다. 서비스 URL은 WSDL에 있습니다.

서비스는 동일한 origin-policy 때문에 html 페이지와 동일한 도메인에 있어야합니다.

0

dataTytpexml, json, script, or html 일 수 있습니다. 기본값은 비워 두어 Intelligent Guess입니다.

또한 URL wsdlURLsame-origin policy을 위반하지 않는지 확인하십시오.

관련 문제