2014-03-26 94 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,那麼在Failure塊中會出現一個異常,它說cannot parse NULL
我寫錯了嗎?當我使用方法及其參數在瀏覽器上運行url時,它會給出正確的結果。

+0

似乎與您的代碼有問題你檢查你的網址中的數據?它回來了嗎? –

+0

是的,它是以xml格式返回數據。 – Nitish

+0

不知道,但如果你可以在瀏覽器上運行,那麼它一定是GET?或者您是否使用某種工具從瀏覽器調用服務? –

回答

1

我在這裏看到的是SOAP而不是REST。您應該嘗試直接嘗試jQuery SOAP Plugin而不是jQuery AJAX方法。

此外WSDL Url不是服務URL,而是服務描述的URL。服務URL位於WSDL中。

由於同源策略,服務應該位於與您的html頁面相同的域中。

0

dataTytpe只能是xml, json, script, or html。默認爲空:Intelligent Guess

另外請確保網址wsdlURL不會違反same-origin policy