我有一个用ajax处理的表单,我需要从视图中返回,因为我做了一些验证。对视图的调用工作正常,但如果我尝试从javascript(json)的视图获得响应,我会松开上下文数据。
这是我的ajax调用,运行正常(返回202 OK),但如果data.valid == false,则显示消息,但模板中没有上下文数据。
$.ajax({
type: "POST",
url: '/validate_create/',
contentType: 'application/x-www-form-urlencoded;charset=utf-8',
csrfmiddlewaretoken: $('input[name=csrfmiddlewaretoken]').val(),
data: frmData,
dataType: "json",
success: function(data)
{
if (data.valid== true){
alert ('validation ok');
}else{
alert ('validation error');
}
},
error: function (data) {
alert('err');
}
});
这是我从视图中返回的原始内容(不返回任何数据):
return render_to_response('shop/checkout.html', ctx, context_instance=RequestContext(request))
在检查了其他帖子之后我做了这个但是没有返回上下文(在这种情况下在会话中的购物车)
context = {}
context['data'] = render_to_string("shop/checkout.html", {'cart': cart,'valid':valid})
return HttpResponse(json.dumps(context), content_type = "application/json")
UPDATE:上面的代码没问题,ajax收到了json的响应。我的视图出了问题导致会话被删除。
顺便说一句,在ajax调用data.valid在这个条件下运行正常但是如果我的console.log是未定义的。