jQuery.get () не получает ответ от django http - PullRequest
0 голосов
/ 12 ноября 2010

Странно - я не могу использовать jQuery.get () для чтения ответа от django.HttpResponse.

Со стороны Джанго у меня есть вид:

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

И URL:

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

И когда я посещаю http://localhost:8000/hello/,, я вижу "Hello World", как и ожидалось.

На своей веб-странице я делаю это:

<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>

В firebug я вижу запрос, но ответ пустой, хотя django видел запрос и обрабатывал ответ.

Я что-то упустил? Это проблема jQuery или django.HttpResponse?

1 Ответ

2 голосов
/ 12 ноября 2010

Вы не можете сделать запрос к другому домену, подобному этому (другой порт подпадает под это), он заблокирован той же политикой происхождения .Это не jQuery или Django, это то, как браузер реализует безопасность для объекта XmlHttpRequest.

Чтобы сделать запрос в другой домен, вам нужно использовать JSONP для извлечения данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...