dataType:'jsonp',
Sie stellen eine JSONP-Anfrage, aber der Server antwortet mit JSON.
Der Browser weigert sich, den JSON als JSONP zu behandeln, da dies ein Sicherheitsrisiko darstellen würde. (Wenn der Browser hat die JSON als JSONP zu behandeln versucht , dann wäre es allenfalls gescheitert).
In dieser Frage finden Sie weitere Informationen zu JSONP. Beachten Sie, dass dies ein böser Hack ist, um die Same Origin-Richtlinie zu umgehen, die verwendet wurde, bevor CORS verfügbar war. CORS ist eine viel sauberere, sicherere und leistungsfähigere Lösung für das Problem.
Es sieht so aus, als würden Sie versuchen, eine Cross-Origin-Anfrage zu stellen, und alles, was Sie sich vorstellen können, in einem riesigen Stapel widersprüchlicher Anweisungen darauf werfen.
Sie müssen verstehen, wie die Richtlinie für denselben Ursprung funktioniert.
In dieser Frage finden Sie eine ausführliche Anleitung.
Nun ein paar Anmerkungen zu Ihrem Code:
contentType: 'application/json',
- Dies wird ignoriert, wenn Sie JSONP verwenden
- Sie stellen eine GET-Anfrage. Es gibt keinen Anforderungshauptteil, der den Typ von beschreibt.
- Dies macht eine Cross-Origin-Anfrage nicht einfach, was bedeutet, dass Sie sich neben den grundlegenden CORS-Berechtigungen auch mit einem Vorflug befassen müssen.
Entfernen Sie das.
dataType:'jsonp',
- Der Server antwortet nicht mit JSONP.
Entferne das. (Sie könnten den Server stattdessen mit JSONP antworten lassen, aber CORS ist besser).
responseType:'application/json',
Dies ist keine von jQuery.ajax unterstützte Option. Entferne das.
xhrFields: {withCredentials: false},
Dies ist die Standardeinstellung. Entfernen Sie dies, es sei denn, Sie setzen es mit ajaxSetup auf true.
headers: {
'Access-Control-Allow-Credentials' : true,
'Access-Control-Allow-Origin':'*',
'Access-Control-Allow-Methods':'GET',
'Access-Control-Allow-Headers':'application/json',
},
- Dies sind Antwortheader. Sie gehören zur Antwort, nicht zur Anfrage.
- Dies macht eine Cross-Origin-Anfrage nicht einfach, was bedeutet, dass Sie sich neben den grundlegenden CORS-Berechtigungen auch mit einem Vorflug befassen müssen.