Javascript AngularJS SOAP调用

Javascript AngularJS SOAP调用,javascript,angularjs,soap,Javascript,Angularjs,Soap,我是IT领域的新手,我正在做一个apprenship,这个apprenship的目标是制作一个从运行SOAP的服务器检索数据的应用程序(不幸的是),这是我第一次要求获取服务器内部所有者的信息。这个调用不起作用(我在代码中肯定写了sh*t),我不知道如何更正它并进行更好的SOAP调用。 这是密码 var myApp = angular.module('myApp', []); myApp.controller('myCtrl', function($scope,$http) { var s

我是IT领域的新手,我正在做一个apprenship,这个apprenship的目标是制作一个从运行SOAP的服务器检索数据的应用程序(不幸的是),这是我第一次要求获取服务器内部所有者的信息。这个调用不起作用(我在代码中肯定写了sh*t),我不知道如何更正它并进行更好的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();
    };
});
var myApp=angular.module('myApp',[]);
控制器('myCtrl',函数($scope,$http){
var sr=
'' + 
'' +
'' +
'' + 
“管理员”+
“管理员”+
'' +
'' +
'' + 
'' + 
'字符串'+
'' +
'' +
'';
var-soapResponse=null;
函数makeSoap(){
$http.post('31.44.16.67/GetOwnersUsers',sr)
.成功(功能(数据){
soapResponse=数据;
$scope.response=soapResponse;
});
}
$scope.callSoap=function(){
$scope.soapRequest=sr;
makeSoap();
};
});

谢谢大家的提示和提示

SOAP是Web应用程序可能发生的最糟糕的事情

对于我们的应用程序,我们使用

在angular应用程序中,您需要创建一个带有工厂的模块:

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中不适合我们的插件。(在chrome中很好)。

谢谢你的回复,所以我只需要写这个来执行soap调用?或者我需要添加一些其他的东西,比如我想要执行的soap请求?在我评论的工作时间里,我这样做了,并且我得到了一些错误,这些错误使我沮丧,无法跟上这个进度。这是密码的破坏者,你能帮我摆脱这个吗?编辑:最后我可以和服务器通信了,他拒绝了我的所有请求,但至少我可以通信(这是向前迈出的一大步)。现在的问题是服务器运行SSL,所以我需要对自己进行身份验证。我怎么能做到?我使用了您以前链接的angular soap库。这是重新访问的代码。谢谢你的帮助@Wallcraft看起来有一个$soap.setCredentials(“用户名”、“密码”);方法。不知道如何确保它的安全…好吧,不管我的服务器使用SSL,我发现了一个带有一些简单API的公共web服务器。我尝试执行SOAP调用,在控制台中出现以下错误->“XMLHttpRequest无法加载。请求的资源上不存在“Access Control Allow Origin”标头。因此不允许访问Origin“null”。以及“Uncaught TypeError:无法读取null的属性‘documentElement’”下面是代码