Hey Leute, ich weiß, dass dieses Problem viel geschrieben hat, aber nichts hilft mir nicht, deshalb frage ich diese Frage.Frage ist, ich habe ein Problem mit dem Senden einer synchrone Anfrage an php. Hier ist meine Model-Funktion, die Anfrage sendet.
State.pushData = function() {
$http({
method: 'POST',
url: 'pushData.php?action=pushdata',
data: {'status': 'push', 'email' : State.campemail},
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
}).success(function(response){
if(response.error){
console.log(response.error);
return;
}
State.getCartData();
State.selectedItems = [],
});
}
Diese PushData-Funktion senden eine Post-Anfrage an definierte URL. und eine Antwort holen. Der geschriebene Code soll die Funktion "State.getCartData()" ausführen, sobald die Anfrage erfolgreich gesendet wurde. Aber das funktioniert nicht auf diese Weise. beide Anfragen werden sofort ausgeführt. Ich hatte versucht $ http mit .post und dann Methoden, aber die gleichen Ergebnisse. wie dies
State.pushData = function() {
$http.post('pushData.php?action=pushdata',
{'status': 'push', 'email' : State.campemail}
).then(function(response){
if(response.error){
console.log(response.error);
return;
}
State.getCartData();
State.selectedItems = [],
});
}
Ich mag Anfrage asynchron senden, dass einmal abgeschlossen pushQuote Anfrage danach getCartData() Funktion ausführt. Bitte teile deine Erfahrungen dazu mit. Danke im Voraus.
Soweit ich das beurteilen kann, ist Ihr Problem nicht in dem von Ihnen geposteten Snippet enthalten. Es gibt keine Möglichkeit, dass 'State.getCartData();' ausgelöst werden kann, bevor das Versprechen gelöst wird. Sie sollten herausfinden, wo 'State.getCartData();' ausgelöst wird. Ein einfacher Weg, dies zu tun, ist dieser Ausschnitt: 'console.info ((new Error()). Stack);' Dies wird ein Fehler-Stack protokollieren, ohne tatsächlich einen zu werfen, aber es zeigt Ihnen die letzten 10 Schritte Ihrer Anwendung zur Ausführung von 'getCartData'. Hoffe das hilft. – Pjetr
Hier ist die Controller-Funktion, die diese Modellfunktion aufruft. scope.pushIt = function() { console.log ("Drücken von Daten zum Server"); State.pushData(); } Hier ist nichts als nur ein Aufruf von PushData(). –
Könntest du 'console.info ((new Error()). Stack);' als erstes in 'getCartData' ausführen? Und bearbeiten Sie die Stack-Trace in Ihrem Post. – Pjetr