2015-11-09 80 views
0

我無法將正確的參數發送到服務。使用Node.js soap請求從參數中刪除命名空間

代碼:

var soap = require('soap'); 
var url = 'http://example.com'; 

soap.WSDL.prototype.ignoredNamespaces = ['targetNamespace', 'typedNamespace']; 

var args = {'name':'test'}; 

soap.createClient(url, function(err, client) { 
    client.Hello(args, function(err,result,res){ 
     console.log(result); 
     console.log(client.lastRequest); 
    }); 
}); 

的HELLO-函數應該返回字符串 「Hello考驗!」。不過,我得到:

'Hello null !' 

請求被髮送是:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ....><soap:Body> 
<tns:Hello xmlns:tns="http://example/"> 
    <tns:name>test</tns:name> 
</tns:Hello></soap:Body></soap:Envelope> 

其中 測試 是最有趣的部分。該服務預計

<name>test</name> 

沒有命名空間(我http://www.soapclient.com/測試這個)

所以,問題是:如何發送連接不TNS請求參數? (tns:name => name)謝謝!

回答

0

在你的代碼,而不是傳遞參數作爲

var args = {'name':'test'}; 

嘗試

var args = {arg0: 'testName'}; 

我不是專家,但它的工作對我來說,從node.js的同時調用SOAP客戶端傳遞的參數。