加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Angularjs soap库在Firefox上抛出一个typeError,而不是在Chrome

发布时间:2020-12-17 07:47:00 所属栏目:安全 来源:网络整理
导读:我正在为 Andrew McGivery的AngularJS使用肥皂服务 它从Chrome浏览器调用时效果很好,但在Firefox和IE11上返回一个typeError. TypeError: e is null at angular.soap.js line 16 有关代码如下: .factory("$soap",['$q',function($q){ return { post: functio
我正在为 Andrew McGivery的AngularJS使用肥皂服务

它从Chrome浏览器调用时效果很好,但在Firefox和IE11上返回一个typeError.

TypeError: e is null at angular.soap.js line 16

有关代码如下:

.factory("$soap",['$q',function($q){
    return {
        post: function(url,action,params){
            var deferred = $q.defer();

            //Create SOAPClientParameters
            var soapParams = new SOAPClientParameters();
            for(var param in params){
                soapParams.add(param,params[param]);
            }

            var soapCallback = function(e){
                //ERROR THROWN ON LINE BELOW
                if(e.constructor.toString().indexOf("function Error()") != -1){
                    deferred.reject("An error has occurred.");
                } else {
                    deferred.resolve(e);
                }
            }

            SOAPClient.invoke(url,soapParams,true,soapCallback);

            return deferred.promise;
        },setCredentials: function(username,password){
            SOAPClient.username = username;
            SOAPClient.password = password;
        }
    }
}]);

e在Chrome中是我的webservice(用户对象)返回的对象,在Firefox中它是空的,我不知道在库中查找哪里来调试问题.

更新:

我的控制器如下所示:

.controller('SoapCtrl',function($soap) {

    this.login = function(credentials) {

        $soap.post('MYAPI','MYMETHOD',{login: credentials.login,password: credentials.password}).then(function(data) {
            console.log(data.userid);
        });
    }

})

我也尝试从我的角度应用程序中的jquery插件jquery.soap调用相同的Web服务,并在Chrome和Firefox中获得预期的行为.

最后更新

既然这是一个专业的项目,我们决定继续使用一个可以工作的插件. jquery.soap

author’s page发布了2个问题,暂时没有回答.

我会把赏金授予一个有效的答案,但一半的赏金会自动得到2个upvote的答案…

在函数SOAPClient._getElementsByTagName中
我换行了
return document.getElementsByTagName(tagName);
对于
return document.getElementsByTagNameNS(“*”,tagName);

为我工作!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读