2013-10-16 39 views
0

我想從Webservice(Soap)獲取數據,但它並不成功。我的服務在這裏http://icafe.ipos.vn/WSUitility/evsServiceUtility.svc?wsdl
使用jQuery來請求服務,代碼如下如何通過jquery從Soap服務獲取數據?

var soap = "<s:Envelope xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\">" + 
     "<soap:Body>" + 
     "<Test xmlns=''>" + 
     "</Test>" + 
     "</soap:Body>" + 
     "</soap:Envelope>"; 
    $.ajax({ 
     url: 'http://icafe.ipos.vn/WSUitility/evsServiceUtility.svc?wsdl', 
     method: 'post', 
     data: soap, 
     contentType: "text/xml", 
     dataType: "xml", 
     beforeSend: function (xhr) { 
      xhr.setRequestHeader("SOAPAction", "urn:evsServiceUtility/Test1"); 
     }, 
     crossDomain: true, 
     success: function(SOAPResponse) { 
      alert('ok'); 
     }, 
     error: function(SOAPResponse) { 
      alert('no ok'); 
     } 
    }); 

我的服務:

public string Test() 
    { 
     try 
     { 
      return "Successfull!"; 
     } 
     catch (Exception ex) 
     { 
      return ex.Message; 
     } 
    } 

我spended很多很多次搜索並嘗試了很多解決方案,但它不工作。
任何人都可以幫助我嗎?

+0

你有什麼異常? –

+0

我得到代碼響應400錯誤的請求。 –

回答

0

我想你的數據類型可以是XML,而不是那裏的問題。問題是,你如何編碼你的data或參數?也許在瀏覽器的控制檯中檢查POST請求中的響應。

我拿起一些東西在C#中自動啓用此這是很好的記錄在這裏: http://encosia.com/3-mistakes-to-avoid-when-using-jquery-with-aspnet-ajax/

然後一兩件事沒有做的是JSON.stringify()數據。那麼bhRequest是一個json對象嗎?

...然後你就會有跨瀏覽器來實現json2.js: https://github.com/douglascrockford/JSON-js

+0

Sr. bhRequest是上面的soap變量。 –

0

我沒有看到正在使用您的命名肥皂變種哪裏。它看起來應該是發送到SOAP服務的「data:」,但是那裏有一些叫做bhRequest的東西。

另外,還要確保你允許你的遠程服務器

<access subdomains="true" origin="*" /> 
在你的config.xml

PhoneGap的訪問。當你把事情搞定時,可以通過限制它到你的icafe.ipos.vn域來使它更具限制性。

+0

是的。在config.xml中

相關問題