Strano - Non riesco a usare un jQuery.get () per leggere la risposta da un django.HttpResponse.
Dalla fine di Django, ho una visione:
def hello(request):
return HttpResponse("Hello world", content_type="application/html")
E URL:
urlpatterns = patterns("",
("^hello/$", hello),
E quando visito http://localhost:8000/hello/, Vedo "Hello World" come previsto.
Nella mia pagina web, però, lo faccio:
<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>
In firebug, vedo la richiesta, ma la risposta è vuota, anche se django ha visto la richiesta ed elaborato la risposta.
Mi sto perdendo qualcosa? Si tratta di un problema jQuery o di una cosa di django.HttpResponse?
risposte:
2 per risposta № 1Non puoi fare una richiesta ad un altro dominio come questo (una porta diversa cade sotto questo), è bloccata dal stessa politica di origine. Non è una cosa jQuery o Django, è come il browser implementa la sicurezza per l'oggetto XmlHttpRequest.
Per effettuare una richiesta a un altro dominio, è necessario utilizzare JSONP tirare i dati.