/ / jQuery.get () no obtiene respuesta de django http - jquery, django, httprequest

jQuery.get () no obtiene respuesta de django http - jquery, django, httprequest

Extraño - Parece que no puedo usar un jQuery.get () para leer la respuesta de un django.HttpResponse.

Desde el final de Django, tengo una vista:

def hello(request):
return HttpResponse("Hello world", content_type="application/html")

Y URL:

urlpatterns = patterns("",
("^hello/$", hello),

Y cuando visito http://localhost:8000/hello/, Veo "Hola mundo" como se esperaba.

En mi página web, sin embargo, hago esto:

<html><head>
<script src="/asgapp/lib/jquery/jquery-1.4.3.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#testdiv").html("initial");
$.get("http://localhost:8000/hello/", function(data){
if(data){
$("#testdiv").html(data);
}
else{
$("#testdiv").html("no data");
}});
});
</script>
</head>
<body>
<h1>test page</h1>
<div id="testdiv">(empty)</div>
</body>
</html>

En firebug, veo la solicitud, pero la respuesta está vacía, aunque django ha visto la solicitud y procesado la respuesta.

¿Me estoy perdiendo de algo? ¿Es esto un problema de jQuery o una cosa de django.HttpResponse?

Respuestas

2 para la respuesta № 1

No puede realizar una solicitud a otro dominio como este (un puerto diferente se incluye en este), está bloqueado por el política del mismo origen. No es una cosa de jQuery o Django, es cómo el navegador implementa la seguridad para el objeto XmlHttpRequest.

Para realizar una solicitud a otro dominio, debe utilizar JSONP para tirar de los datos.