Ich versuche, eine Post-Anforderung über jQuery mit einem ES6 Versprechen zu machen:jQuery Ajax mit ES6 Promises
Ich habe eine Funktion:
getPostPromise(something, anotherthing) {
return new Promise(function(resolve, reject) {
$.ajax({
url: someURL,
type: 'post',
contentType: 'application/json; charset=utf-8',
data: JSON.stringify(
something: something,
anotherthing: anotherthing
}),
dataType: 'json',
success: resolve,
error: reject
});
});
}
und ich nenne es wie so:
getPostPromise(
'someFooStuff',
'someBarStuff'
).then(
function(returnedData) {
console.log("Good: ", returnedData);
},
function(responseObject) {
console.log("Bad: ", responseObject);
}
).catch(
function(errorThrown) {
console.log("Exception: ", errorThrown);
}
);
Mein Server gibt erwartungsgemäß eine Antwort zurück, wobei der Anfragetext im JSON-Format ist, aber meine Konsolenausgabe lautet:
Gut: undefined
Warum bin ich nicht die zurückgegebenen Daten zu bekommen?
Vielen Dank an alle für jede Hilfe.
--- EDIT UPDATE ---
ich meine js nur reduziert haben:
import $ from 'jquery';
$.get('http://localhost:8008/api/user')
.done(function(data) {
console.log(data);
});
ich noch als Ausgabe undefiniert bekommen. Wenn ich die Anfrage auf der Registerkarte Netzwerk öffne, kann ich das Antwortobjekt mit den korrekten Daten sehen. Die Anfrage wird gestellt, mein Server ist glücklich und antwortet, und die Ergebnisse sind in meinem Browser, aber der Datenparameter von done ist undefiniert. Ich bin ratlos.
--- UPDATE 2 - Lösung gefunden haben ---
entdeckte ich, dass das Problem bei der Verwendung war: https://github.com/jpillora/xdomain um CORS zu bekommen. Es scheint so, als ob diese Bibliothek irgendwie die Werte zurückführt. Ich habe es entfernt und werde CORS richtig und zur Hölle mit Browsern implementieren, die es nicht unterstützen.
ich deine Fehler nicht reproduzieren kann. –