2016-08-28 15 views
1

私はITのこの分野で新しいです。私はこのappreintienshipの目標であるapprentienshipをやっています。SOAPを実行するサーバーからデータを取得するアプリケーションを作成しています(残念ながら)、gettinの最初の呼び出しです'サーバー内のオーナーに関する情報。呼び出しは機能しません(私はsh * tを自分のコードに書きました)、私はそれを修正してより良いSOAP呼び出しを行う方法を知らないのです。 はここにヒントとヒントをanticipatelyあなたのすべてのコードAngularJS SOAPコール

var myApp = angular.module('myApp', []); 
myApp.controller('myCtrl', function($scope,$http) { 
    var sr = 
       '<?xml version="1.0" encoding="utf-8"?>' + 
       '<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">' + 
        '<soap:Header>' + 
         '<AuthHeader xmlns="Logisense_EngageIP">' + 
          '<Username>admin</Username>' + 
          '<Password>admin</Password>' + 
         '</AuthHeader>' + 
        '</soap:Header>' + 
        '<soap:Body>' + 
         '<GetOwnersUsers xmlns="Logisense_EngageIP">' + 
          '<ownerUsername>string</ownerUsername>' + 
         '</GetOwnersUsers>' + 
        '</soap:Body>' + 
       '</soap:Envelope>'; 
    var soapResponse = null; 
    function makeSoap(){ 
     $http.post('31.44.16.67/GetOwnersUsers', sr) 
      .success(function(data) { 
       soapResponse = data; 
       $scope.response = soapResponse; 
      }); 
    } 
    $scope.callSoap = function(){ 
     $scope.soapRequest = sr; 
     makeSoap(); 
    }; 
}); 

に感謝です!

答えて

0

SOAPは、Webアプリケーションで起こりうる最悪のことです。

私たちのアプリでは、javascript SOAP client libraryを使用しています。あなたの角度アプリで

あなたは、工場でモジュールを作成する必要があります。

angular.module('angularSoap', []).factory("$soap", [ '$q', "$http", function($q, $http) { 
    return { 
     post : function(action, params) { 
      var deferred = $q.defer(); 
      var soapParams = new SOAPClientParameters(); 
      for (var param in params) { 
       soapParams.add(param, params[param]); 
      } 
      var soapCallback = function(e) { 
       if (e.constructor.toString().indexOf("function Error()") != -1) { 
        deferred.reject(e); 
       } else { 
        deferred.resolve(e); 
       } 
      } 
      SOAPClient.invoke('http://31.44.16.67/GetOwnersUsers', action, soapParams, true, soapCallback); 
      return deferred.promise; 
     } 
    } 
} ]); 

はあなたがあなたのメインアプリでangularSoapを注入する必要があります。

angular.module('yourApp', ['angularSoap']); 

あなたは$soapサービスにアクセスできます。

return $soap.post("ws:authentificationRequestParameter", { 
    login : login, 
    password : password, 
    autoLog : autoLog 
}); 

また、Firefoxで私たちのために動作しませんでしたangular-soapプラグインを試すことができます。 (クロムの罰金)。

+0

返信いただきありがとうございますので、私はsoapコールを実行するためにこれを書く必要がありますか?あるいは、私は実行したい石鹸リクエストのようなものを追加する必要がありますか? – Wallcraft

+0

私のコメントからの仕事の時間で、私はこれをした、私は私に落ち込んで、このapprentienshipに追いつくことができないいくつかのエラーがあります。 ここにコードのパンカーがありますが、これを脱出するのを手伝ってもらえますか? https://plnkr.co/edit/ThP70IqhwhQumPd686Nw?p=info – Wallcraft

+0

EDIT: 最後に、私はサーバーとコミュニケートすることができます。彼はすべてのリクエストを拒否しますが、少なくとも私はコミニケートできます(これは大きな前進です)。問題は、今、サーバーがSSLを実行するので、私は自分自身を認証する必要があるということです。私はそれをどうやってできるの?以前にリンクした角石鹸ライブラリを使用しました。ここでコードを再訪します。 https://plnkr.co/edit/ThP70IqhwhQumPd686Nw?p=info 助けてくれてありがとう! – Wallcraft

関連する問題