当前位置:  开发笔记 > 前端 > 正文

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

如何解决《Angularjssoap库在Firefox上抛出typeError,而不是在Chrome中抛出》经验,为你挑选了0个好方法。

我正在使用Andrew McGivery的 AngularJS肥皂服务

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

TypeError:在angular.soap.js第16行,e为null

有问题的代码如下:

.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, action, soapParams, true, soapCallback);

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

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

更新:

我的控制器看起来像这样:

.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

在作者的页面上发布了2个问题,目前没有答案.

我本可以将赏金奖励给一个有效的答案,但是一半的赏金会自动回到2个赞成票的答案......

推荐阅读
kikokikolove
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有