J'ai une extrémité avant angulaire 4 avec un backend CakePHP 3. Lorsque je fais une demande à un point final API en utilisant mon navigateur ou Rest Rest, je reçois une réponse. Mais quand j'envoie la réponse du service angulaire il montre immédiatement annulé dans le réseau. Au début, j'ai supposé que c'était un problème CORS. J'ai essayé à la fois avec et sans CORS activé. J'ai également ajouté $this->Security->csrfCheck = false;
à mon AppController.php, ce qui m'a amené à croire que le serveur local n'est jamais touché (aucun point de coupure ne tirait). Donc, à la place, je regarde le côté angulaire de l'équation. J'ai essayé de définir mes en-têtes, mais cela ne fonctionne pas non plus.Les appels HTTP sont immédiatement annulés
import { Headers, Http, Response, RequestOptions } from '@angular/http';
login(loginData) {
const headers = new Headers({'Content-Type': 'application/json'});
const url:string = this.backendUrl + '/auth/login/?';
return this.Http.post(
url,
JSON.stringify(loginData),
{ headers: headers }
).map(
res => res.json
).map(
response => function(response) {
...
},
error => function(error) {
...
}
);
}
Je suis dans le processus de migration de 1 à 4. Je sais que cela a fonctionné dans Angulaire 1 en utilisant les requêtes HTTP $.
function login(loginData) {
var = this.backendUrl + '/auth/login/?';
$http.post(url, loginData).then(...);
}
Voici mon composant qui utilise l'abonnement:
login = function(activeUser):ActiveUser|boolean {
this.isLoggingIn = true;
return this.LoginService.login(activeUser).subscribe(
activeUser => function(activeUser) {
if (activeUser) {
this.activeUser = activeUser;
} else {
this.reset();
}
return activeUser;
}.bind(this)
).complete(
function() {
this.isLoggingIn = false;
}.bind(this)
);
};
Les observables http angulaires sont froids par défaut. Cela signifie que votre fonction de connexion ne fait que configurer la requête http. Pour réellement lancer la requête http, vous devez vous abonner à l'observable this.login.subscribe(); – LLai
Copie possible de [Angular 2 http ne pas obtenir] (https://stackoverflow.com/questions/41381200/angular-2-http-get-not-getting) – Alex
Ce problème est légèrement différent, l'appel est fait à le réseau et se faire annuler. Mon problème semble être autour de la méthode d'abonnement n'est pas configuré correctement. L'autre question manque complètement la méthode subscribe qui ne provoque aucun appel. Cela m'a aidé à me mettre sur la bonne voie, merci! – jrquick