Как использовать SOAP WebService с помощью AngularJS?

Ну, у меня есть SOAP WebService, который обычно используется для PHP-клиента, отлично работает … с помощью использования ajax этого php и заполнения моего шаблона.

Мое текущее приложение выполняет следующий процесс: Angular <-> PHP <-> service.wsdl

Я обнаружил возможность исключения этого моста PHP, напрямую потребляющего SOAP WebService, используя угловое мыло .

Но при воспроизведении примера я не могу вернуть какую-либо информацию .. или ошибку.

index.html

 <html ng-app="myApp"> <head> <script src="public/js/angular.js"></script> <script src="public/js/soapclient.js"></script> <script src="public/js/angular.soap.js"></script> <script> angular.module('myApp', ['angularSoap']) .factory("testService", ['$soap',function($soap){ var base_url = "http://localhost/api/1/service.wsdl"; return { getEmpresa: function(){ var x = $soap.post(base_url,"getEmpresas"); return x; } } }]) .controller('MainCtrl', function($scope, testService) { testService.getEmpresa().then(function(response){ $scope.response = response; }); }) </script> </head> <body ng-controller="MainCtrl"> {{response}} </body> </html> 

служба wsdl

 <!-- WSDL file generated by Zend Studio. --> <definitions xmlns:typens="urn:Service" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/" name="Service" targetNamespace="urn:Service"> <message name="getEmpresas"> <part name="getEmpresas" type="xsd:string"/> </message> <message name="getEmpresasResponse"> <part name="getEmpresasReturn" type="xsd:string"/> </message> <portType name="HomePortType"> <operation name="getEmpresas"> <input message="typens:getEmpresas"/> <output message="typens:getEmpresasResponse"/> </operation> </portType> <binding name="HomeBinding" type="typens:HomePortType"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="getEmpresas"> <soap:operation soapAction="urn:HomeAction"/> <input> <soap:body namespace="urn:Service" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> </input> <output> <soap:body namespace="urn:Service" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> </output> </operation> </binding> <service name="ServiceService"> <port name="HomePort" binding="typens:HomeBinding"> <soap:address location="http://localhost/app/homeCrtl.php"/> </port> </service> </definitions> 

Когда вы делаете запрос, он отправляет конверт через Request Payload.

 <?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:Body> <getEmpresas xmlns="urn:Service"></getEmpresas> </soap:Body> </soap:Envelope> 

инструмент браузера для network > Response он возвращает мой собственный wsdl, описанный выше ..

вам нужно / нужно что-то менять на сервере?

Спасибо