Ich bin derzeit stark abhängig von Native "Promise" -Objekt in Javascript für AJAX Calls. Aber, wie in https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Promise erwähnt und nach meinem Test in IE11, funktionieren Native Promises nicht in IE.Konvertierung von Native Promise zu JQuery's Promise (für IE)
Jetzt ist die Lösung JQuerys Versprechen zu verwenden, aber ich kann es nicht funktionieren. finden Sie den Code unten für Native Versprechen :(Funktioniert in allen Browsern außer IE)
var getJSON = function (url) {
return new Promise(function (resolve, reject) {
var xhr = new XMLHttpRequest();
console.log(window.location);
console.log(window.location.origin);
xhr.open('get', url, true);
xhr.withCredentials = true;
xhr.responseType = 'application/json';
xhr.onload = function() {
var status = xhr.status;
if (status == 200) {
resolve(xhr.response);
} else {
reject(status);
}
};
xhr.send();
});
};
getJSON(url).then(function (data) {
console.log(data);
console.log("Success");
}, function (status) { //error detection....
console.log(status);
alert('Something went wrong.');
});*/
ich so etwas wie dies versucht, aber es hat nicht funktioniert
var promise = $.ajax({
url: url,
beforeSend: function (xhr) {
xhr.withCredentials = true;
}
}).done(function (data){
console.log(data);
});
Ich denke, wir müssen verwenden das verzögerte Objekt, aber nicht in der Lage, es herauszufinden! Hinweis: Kann verwenden PolyFill oder Drossel nicht wegen des Mangels an Node.js Dank
['$ .getJSON()'] (http://api.jquery.com/jquery.getJSON/) – Andreas
Nicht. Sie werden nicht glücklich mit jQuery sein. Verwenden Sie stattdessen ein geeignetes Polyfill. – Bergi
Wenn Sie viel Code für native Versprechungen geschrieben haben, wäre es viel einfacher, ein Polyfill für native Versprechungen zu erhalten. jQuery-Versprechen (mindestens vor 3.0) sind sowohl in der Syntax als auch im Verhalten sehr unüblich. Ein einfacher Polyfill oder ein verbesserter Polyfill wie Bluebird wird für Sie funktionieren, ohne dass Sie Ihren bestehenden Code ändern müssen. – jfriend00