如何使用ajax从django视图获取后台数据

时间:2010-04-16 09:01:57

标签: jquery ajax django

我的ajax是:

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

和django视图是:

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

如何从视图's'获取一些数据

感谢

2 个答案:

答案 0 :(得分:1)

您正在遇到cross domain issues。您无法对不同的域执行ajax调用。您可以使用JSONP代替(查看文档中的Flickr示例,它演示了跨域ajax请求)。您的服务器需要以JSONP字符串形式发送数据:

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

其中someCallbackName应该是动态的并作为请求参数传递。一个重要的注意事项是JSONP仅适用于GET方法,而不适用于POST

答案 1 :(得分:0)

进行跨域脚本编写的黑客是使用urlopen读取数据并返回您收到的数据

在domain1上

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