как получить обратно данные из представления Django с помощью AJAX - PullRequest
0 голосов
/ 16 апреля 2010

Мой Аякс:

$('#save').click(function(){
            $.post("http://127.0.0.1:8080/sss",
           function(data){
             alert(data);
           });
            })

и вид django:

def sss(request):
    return HttpResponse('ddddddddddd')

как получить некоторые данные из представления 'sss'

спасибо

Ответы [ 2 ]

1 голос
/ 16 апреля 2010

Вы столкнулись с междоменными проблемами . Вы не можете выполнять вызовы ajax в разные домены. Вместо этого вы можете использовать JSONP (посмотрите на пример Flickr в документации, он демонстрирует междоменный запрос ajax) Ваш сервер должен отправить данные в виде строки JSONP:

def sss(request):
    return HttpResponse('someCallbackName({ Data = 12345 })')

где someCallbackName должно быть динамическим и передаваться как параметр запроса. Важным примечанием является то, что JSONP работает только с GET методами, а не POST.

0 голосов
/ 17 апреля 2010

Хакерство для выполнения междоменных сценариев - это чтение данных с использованием urlopen и возврат полученных данных.

находясь в домене1

import urlllib2

def getdata(req)
    redirectstr = "http://domain2.com/call/that/returns/data/"
    #make call to domain2
    resp = urllib2.urlopen(redirectstr)
    return HttpResponse( resp.whatever() )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...