gpt4 book ai didi

javascript - AngularJS SOAP 调用

转载 作者:行者123 更新时间:2023-11-27 22:34:57 24 4
gpt4 key购买 nike

我是 IT 领域的新手,我正在做学徒,这个学徒的目标是制作一个从运行 SOAP 的服务器检索数据的应用程序(不幸的是),这是我第一次要求获取一些信息关于服务器内的所有者。该调用不起作用(我肯定在代码中写了一些狗屎),并且我不知道如何纠正它并进行更好的 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();
};
});

感谢大家的提示和提示!

最佳答案

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

对于我们的应用程序,我们使用 javascript SOAP client library .

在您的 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;
}
}
} ]);

您需要在主应用程序中注入(inject)angularSoap

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

然后您将可以访问 $soap 服务。

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

您还可以尝试angular-soap这个插件在 Firefox 中对我们不起作用。 ( Chrome 效果很好)。

关于javascript - AngularJS SOAP 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39196235/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com