8
votes

Vue proxy Django Ajax

Une application Web Django doit apporter des appels AJAX à une URL externe. En développement, je serve directement de Django, donc j'ai un problème de domaine croisé. Quelle est la façon Django d'écrire un proxy pour l'appel Ajax?


0 commentaires

3 Réponses :


1
votes

suis-je juste que vous vous demandiez comment écrire une vue sur Django qui pourrait accepter une demande d'Ajax entrante, une demande d'émission sur le serveur distant, puis renvoyer la réponse reçue au navigateur?

Si tel est le cas, il n'est pas vraiment question de questions spécifiques à Django - des appels distants pourraient être effectués avec Python's urllib2 ou HTTPLIB , puis vous devez simplement mettre: P>

 return HttpResponse(received_response)


1 commentaires

Je n'ai pas testé cela, mais je pense que ce code ne copiera que le corps de réponse, et non les en-têtes HTTP de la réponse, qui peuvent contenir de nombreuses informations utiles du serveur.



2
votes

J'ai couru sur cette question tout en essayant de répondre moi-même et j'ai trouvé cette application Django:

http://httpproxy.yvandermeer.net/

... qui est un petit poids lourd pour ce dont j'avais besoin (enregistrement et lecture, nécessite une synchronisation d'ajouter des éléments de modèle). Mais vous pouvez voir le code qu'il utilise dans sa vue de proxyage générique, basé sur httplib2 :

http://bitbucket.org/yvandermeer/ django-http-proxy / src / 1776d5732113 / httpproxy / vues.py


0 commentaires

6
votes

Voici une mise en œuvre de proxy simple morte pour Django.

url(r'^images/(?P<path>.*)$', proxy_to, {'target_url': 'http://imageserver.com/'}),


2 commentaires

Tout le point est de passer des cookies et de poster des données, afin de nous dire qu'il est facile d'ajouter les cookies et de poster des données, vous auriez pu simplement écrire le code?


Oui, peut-être que vous pourriez ajouter dans les pièces pour passer des cookies et poster des données?