Ich bekomme diesen Fehler in der Konsole, wenn ich versuche, Daten mit Ajax zu posten. Diese Daten sollen an dieser URL bestätigt werden und dann sollte ich eine Antwort erhalten, die mehr Daten enthält.Django Jquery Ajax Cors Fehler
Cross-Origin Request Blocked: The Same Origin Policy disallows
reading the remote resource at https://secure.paygate.co.za/payweb3/process.trans.
(Reason: CORS header 'Access-Control-Allow-Origin' missing).
Ich benutze Django-Kors-Header als Middleware, um die Header hinzuzufügen. Ich habe alle Konfigurationsanweisungen befolgt.
Mein settings.py:
INSTALLED_APPS = [
# ...
'corsheaders',
# ...
]
MIDDLEWARE = [
# ...
'corsheaders.middleware.CorsMiddleware',
# ...
]
CORS_ORIGIN_ALLOW_ALL = True
CORS_ALLOW_METHODS = (
'GET',
'POST',
'OPTIONS',
)
Der Ajax-Aufruf:
$.ajax({
type: "POST",
url: url,
dataType: "json",
data: data,
success: function(data){
alert('success');
},
error: function(data){
alert('error');
}
});
Die Daten und URL wird darüber erklärt und dieser Teil ist in Ordnung. Ich erhalte die Fehlermeldung immer, wenn ich sie einreiche.
Meine Pakete:
Django==1.11.3
django-cors-headers==2.1.0
pytz==2017.2
Ich bin auf Windows 10.
EDIT: Ich habe die csrfSafeMethod für Ajax hinzugefügt. Ich weiß nicht, ob das etwas damit zu tun haben könnte. Dieser Code wird von djangoproject bereitgestellt hier docs.djangoproject.com/en/1.11/ref/csrf
EDIT2: Ich intern einen Ajax-Aufruf zu senden endete so ist, dann habe ich das Cross-Domain-Zeug mit django mit urllib. This hat mir sehr geholfen, Daten über Domains zu veröffentlichen.
'CorsMiddleware' wurde in der richtigen Reihenfolge hinzugefügt? – Grimmy
[this] (https://stackoverflow.com/questions/6506897/csrf-token-missing-or-orrect-while-post-parameter-via-ajax-in-django) wird Ihnen wahrscheinlich helfen. – hansTheFranz
@hanzTheFranz nah das ist nicht das Problem, – bernosbernus