Access-Control-Allow-Origin in Django-app, wenn der Zugriff mit Phonegap
Ich bin die Entwicklung einer Phonegap-app für mein Django-basierte app, aber wenn Sie versuchen, um Ajax-Aufrufe bekomme ich diesen Fehler:
XMLHttpRequest cannot load http://domain.herokuapp.com/getcsrf/?tags=jquery%2Cjavascript&tagmode=any&format=json. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.
Wie kann ich es so machen, meinem Django-app erlaubt cross-origin für einige urls?
Hier mein Ajax code:
get: function() {
$.getJSON("http://domain.herokuapp.com/getcsrf/",
{
tags: "jquery,javascript",
tagmode: "any",
format: "json"
},
function(data) {
$.each(data.items, function(item){
console.log(item);
});
});
}
- Noch nie benutzt Django, aber hab Sie den server hinzufügen, um Ihre cordova - /phonegap-whitelist?
- Wie machst du das? Wusste nicht, man könnte hinzufügen, ein server-whitelist zu cordova/phonegap-app
- cordova.apache.org/docs/en/edge/...
- in meinem config.xml ich hatte die Standard -
<access origin="*" />
schon - Danke für den Tipp @MBillau
Du musst angemeldet sein, um einen Kommentar abzugeben.
Django standardmäßig nicht aus, um den Header nötig, um cross-origin. Die einfachste Möglichkeit wäre, verwenden Sie einfach diese Django-app, mit der es für Sie: https://github.com/ottoyiu/django-cors-headers
Anschließend können Sie festlegen, welche domains Sie möchten der weissen Liste mit den Einstellungen, die
unterstützen, so dass alle, nur mit der Einstellung...
CORS_ORIGIN_ALLOW_ALL = True
und führen Sie dann eine Filterung der Anfrage in der middleware oder in der Ansicht.
CORS_ORIGIN_ALLOW_ALL = True
und führen Sie dann eine Filterung der Anfrage in der middleware oder in der Ansicht.Für Einzel-Ansichten können Sie manuell hinzufügen, Header: