在模板中,我有以下代码。
<script>
var url="/mypjt/my_timer"
$.post(url, paramarr,
function callbackHandler(dict)
{
alert('got response back');
if (dict.flag == 2)
{
alert('1');
$.jGrowl("Data could not be saved");
}
else if(dict.ret_status == 1)
{
alert('2');
$.jGrowl("Data saved successfully");
window.location = "/mypjt/display/" + dict.rid;
}
},
"json"
);
</script>
在视图中,我有以下代码,
def my_timer(request):
dict={}
try:
a = timer.objects.get(pk=1)
dict({'flag':1})
return HttpResponse(simplejson.dumps(dict), mimetype='application/javascript')
except:
dict({'flag':1})
return HttpResponse(simplejson.dumps(dict), mimetype='application/javascript')
由于我们正在发出JSON请求并且在try块中,设置标志后,我们不能直接返回页面为
return render_to_response('mypjt/display.html',context_instance=RequestContext(request,{'dict': dict}))
而不是发送响应,因为在 HTML 页面中再次成功时我们重定向代码?
此外,如果有异常,那么我们只能返回 JSON 请求。
我唯一担心的是客户端和服务器之间的交互应该是最小的。