I’ve been playing around with jQuery’s parseJSON and simplejson and I can’t seem to figure out why I’m unable to get my variables to print or compare.
I know my Python return statement is correct, because if it wasn’t the jQuery.ajax would return false and the “error” code would run. So I’m not sure what I’m doing wrong with the jQuery
Here’s the code I’m trying to use:
Pythong/Django return statement…
return HttpResponse(json.dumps({'result': True}), mimetype='application/json')
jQuery/javascript… (.ajax function… i just left in the good parts)
success: function(data, textStatus, jqXHR) {
jQuery(".signup").attr('disabled', false);
//parse return data
var obj = jQuery.parseJSON(data);
if(obj.result == true){
//$('.signup-area .heading').hide();
//$('#signup').hide();
$('.success').show().append(obj.result);
}
else{
$('.signup-area .heading').hide();
$('#signup').hide();
$('.success').show().append('in the else');
}
},
error: function(jqXHR, textStatus, errorThrown) {
jQuery(".signup").attr('disabled', false);
$('.fail').show().append(errorThrown);
}
As far as I know, the jQuery ajax function takes is ‘dataType’ parameter which you can specify ‘json’ so that jQuery will automatically parse the data. In that case you dont have to call parseJson in order to get response as json.
Something like
jQuery.ajax({
url:url,
dataType:’json’,
success:function(data){
//data will be in json format so no need to parse it again.
},
error:function(){}
});
I hope this helps.