CORS n'est pas supporté. J'ai pu trouvé une librairie simple à intégrer mais je ne suis pas assez compétent pour sa configuration.
Ouah j'étais complètement passé à côté de ça…
Ça interdit quasiment tous les clients JS ou alors ils vont devoir passer par des feintes infâmes du style jsonp
(EDIT : et même avec jsonp on peut pas faire de POST je crois) . J'espère que PhoneGap n'est pas impacté (il me semble que non mais c'est vraiment à confirmer) sinon ça veut dire uniquement clients desktop + mobile natif.
J'dois reconnaître que c'est une sacré déception…
Deux questions :
- Y'a pas forcément besoin d'une lib pour si peu, c'est juste choper la bonne hook pour avoir la réponse juste avant qu'elle ne parte à l'utilisateur. Tous les frameworks le permettent je pense, non ?
J'ai lu quelque part finalize_reponse
vous n'avez pas la main là-dessus ?
Ou Django ne fournit aucun moyen d'intercepter la réponse Http (à la manière de filtres un peu, cf. Rails/Grails et leurs beforeFilter
afterFilter`), et n'injecte nulle part (dans votre code, un décorateur, …) la réponse Http (à la manière de RESTtEeasy, Spring).
- J'ai essayé de fouiller le topic, qu'est-ce-qui te bloque dans la config de la lib que tu as donnée ? D'après la doc il suffirait dans le cas de ZdS de mettre :
| CORS_ORIGIN_ALLOW_ALL = True
|
Qui doit se contenter de mettre le header qu'on veut sur la réponse http.
| CORS_ALLOW_HEADERS = (
'x-requested-with',
'content-type',
'accept',
'origin',
'authorization',
'x-csrftoken',
'x-data-format'
)
|
J'ai repris la valeur par défaut et ajouté le X-Data-Format
(header maison pour le MD/html), mais là faut vérifier qu'on n'attende pas d'autre header (non standard Http !) j'ai pas balayé entièrement la ZEP et ma mémoire flanche.
Enfin :
| CORS_EXPOSE_HEADERS = (
'etag',
'link'
)
|
Ça c'est marqué dans la ZEP. Le client lit quoi dans les headers à part ça ? Y'a eu du nouveau ?
Mais ptet' t'as déjà essayé tout ça, ou ptet' que ça déconne à l'install, etc.
Mais franchement ça vaut le coup de s'y pencher parce que aucun client JS ça fait quand même un peu chier… :\