sto utilizzando il servizio di sapone per l'AngularJS da Andrew McGiverybiblioteca sapone Angularjs getta una TypeError su Firefox, Chrome non in
Funziona perfettamente quando viene chiamato da Chrome, ma restituisce un TypeError su Firefox e IE11.
TypeError: e is null at angular.soap.js line 16
Il codice in questione è la seguente:
.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;
}
}
}]);
e in Chrome è l'oggetto restituito dal mio webservice (oggetto utente), in Firefox è nullo e non so dove cercare nella libreria per eseguire il debug del problema.
UPDATE:
mio regolatore di simile a questa:
.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);
});
}
})
Ho anche provato a chiamare lo stesso webservice dal plugin jQuery jquery.soap all'interno della mia applicazione angolare e ottengo il comportamento previsto in entrambe Chrome e Firefox.
ULTIMO AGGIORNAMENTO
Poiché si tratta di un progetto professionale, abbiamo deciso di passare a un plugin che funziona. jquery.soap
Sono stati pubblicati 2 numeri su author's page senza risposta per il momento.
avrei assegnato il premio per una risposta valida, ma la metà di taglie sta andando automaticamente alla risposta con 2 upvotes ...
La tua API è sullo stesso dominio della pagina web? Vedi le tue richieste API in FireBug come riuscite? Questo errore viene generato quando la richiesta API non è riuscita. Ho creato una semplice pagina di test e il sapone angolare funziona perfettamente per me (http://ypnh.shkryob.webfactional.com/soap/). –
@KostyaShkryob l'API non si trova sullo stesso dominio ma abbiamo configurato CORS e il servizio funziona su Chrome. In firebug posso vedere la risposta attesa dal webservice. Getta solo l'eccezione sopra e non continua. Ho la stessa configurazione che hai in quel collegamento e chiamo $ soap allo stesso modo. – gyc
I browser potrebbero funzionare con le intestazioni CORS in modo leggermente diverso.Potrebbe essere necessario aggiungere Access-Control-Allow-Credentials: true o altri –