Angularjs soap庫在Firefox上丟擲一個typeError,而不是在Chrome中
的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 SOAP/">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; } } }]);
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的答案…