gpt4 book ai didi

javascript - 使用 angular js 将数据发布到 SOAP api

转载 作者:数据小太阳 更新时间:2023-10-29 04:39:49 28 4
gpt4 key购买 nike

我正在尝试将数据发布到 soap api 但无法这样做。我已经尝试了所有可能的方法,但在调用 api 时仍然出现错误。

我的 API 是 - http://xyz.asmx?op=UserRegistration

它排除了 xml 格式的数据,例如

<?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>
<UserRegistration xmlns="http://Service/">
<Usercreditional>string</Usercreditional>
</UserRegistration>
</soap:Body>
</soap:Envelope>

我尝试过的事情-

1> 使用 $http.post

    var soapData = '<?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>'+
'<UserRegistration xmlns="http://Service/">'+
'<Usercreditional>[{ \'DeviceUUID\': \'' + data.DeviceUUID + '\', ' +
"\"DevicePushID\":\"" + data.DevicePushID + "\"}]" +
'</Usercreditional></UserRegistration></soap:Body></soap:Envelope>';

return $http({
method: 'POST',
url: ' http://xyz.asmx?op=UserRegistration',
data : soapData,
headers : { "Content-Type" : 'application/xml'}
});

这给出了错误“无法处理请求。---> 缺少根元素”

2> 使用 SOAPClient

 var deferred = $q.defer(); 
var soapParams = new SOAPClientParameters();
var userCredentials = [{"DeviceUUID": data.DeviceUUID, "DevicePushID": data.DevicePushID}];
for (var param in userCredentials )
{
soapParams.add(param, soapParams[param]);
}
var soapCallback = function (e) {
if (e.constructor.toString().indexOf("function Error()") != -1) {
deferred.reject(e);
} else {
deferred.resolve(e);
}
}; SOAPClient.invoke(' http://xyz.asmx', 'UserRegistration', soapParams, true, soapCallback);
return deferred.promise;

这是错误无法读取 null 的属性 'getElementsByTagName'

谁能帮我解决这个问题?几乎尝试了一切仍然没有运气。提前致谢

最佳答案

  1. 使用 $http.post

您可以使用 $http 服务将数据 POST 到 SOAP API,如下所示:

enter image description here

var headers = {
'Content-Type': 'text/xml; charset=utf-8'
};
return $http({
method: 'POST',
url: 'http://providerservice.fmcnetwork.net/MobileAppService.asmx?op=UserRegistration',
data : soapData,
headers : headers
});
  1. angular-soap

您还可以使用插件 angular-soap建立在 SOAP 客户端之上,并使用 $soap 服务来实现相同的目的。

例如:

angular.module('myApp', ['angularSoap'])

.factory("testService", ['$soap',function($soap){
var base_url = "http://www.cooldomain.com/SoapTest/webservicedemo.asmx";

return {
CreateUser: function(firstName, lastName){
return $soap.post(base_url,"CreateUser", {firstName: firstName, lastName: lastName});
}
}
}])

.controller('MainCtrl', function($scope, testService) {

testService.CreateUser($scope.firstName, $scope.lastName).then(function(response){
$scope.response = response;
});

})

关于javascript - 使用 angular js 将数据发布到 SOAP api,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43630650/

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