Access-Control-Allow-Origin dans Django app quand on y accède avec Phonegap
Je suis le développement d'une application Phonegap pour mon Django application basée, mais lorsque j'essaie de faire des appels Ajax, j'obtiens cette erreur:
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.
Comment puis-je faire si mon Django app permet à l'origine de la croix pour certaines urls?
Voici mon code Ajax:
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);
});
});
}
- N'ont jamais utilisé de Django, mais saviez-vous ajouter le serveur à votre cordova/phonegap liste blanche?
- Comment faites-vous cela? Ne savais pas qu'on pouvait ajouter un serveur de liste blanche pour cordova/phonegap app
- cordova.apache.org/docs/en/edge/...
- dans mon config.xml j'ai eu le défaut
<access origin="*" />
déjà - Merci pour l'astuce @MBillau
Vous devez vous connecter pour publier un commentaire.
Django par défaut ne fournit pas les en-têtes nécessaires pour fournir de l'origine de la croix. Le plus simple serait d'utiliser ce Django app qui s'en occupe pour vous: https://github.com/ottoyiu/django-cors-headers
Vous pouvez ensuite définir selon les domaines que vous voulez une liste blanche en utilisant les paramètres
de soutien permettant à tous, il suffit d'utiliser le paramètre...
CORS_ORIGIN_ALLOW_ALL = True
et puis n'importe quel système de filtrage de la demande dans le middleware ou dans la vue.
CORS_ORIGIN_ALLOW_ALL = True
et puis n'importe quel système de filtrage de la demande dans le middleware ou dans la vue.Pour seule vue vous pouvez manuellement ajouter des en-têtes: