[英]Apply conditions in Ajax success Method on received data from Django's view
我正在一个Django项目中,我需要通过ajax处理表单。我正在向Django视图发送ajax请求并以JSON格式返回响应,现在我需要对该数据应用if-else条件,但是这些条件不起作用,在任何情况下都请始终运行第一个条件。
这是我的代码:
Django的观点:
auth = getauth()
service = discovery.build('cloudbilling', 'v1', http=auth, cache_discovery=False)
name = 'projects/' + projectName
billing_request = service.projects().getBillingInfo(name=name,)
billing_response = billing_request.execute()
data = billing_response
print(json.dumps(data))
if 'billingAccountName' in data:
b_response = data
b_response['msg'] = True
return HttpResponse(json.dumps(b_response), content_type='application/json')
else:
b = {}
b['msg'] = False
return HttpResponse(json.dumps(b), content_type='application/json')
这是我的ajax代码:
$(document).on('submit', '#projectForm', function (e) {
var message;
e.preventDefault();
$.ajax({
url: '{% url 'users:selectProject' %}',
type: 'POST',
data:{
project_id:$('#project').val(),
csrfmiddlewaretoken:$('input[name=csrfmiddlewaretoken]').val(),
},
dataType: 'json',
success:function (data) {
message = data.msg;
console.log(message);
if(data.msg = 'false'){
console.log('Message is False');
$('#message').addClass('show');
}else if(data.msg = 'true') {
console.log('Message is True');
$('#message2').addClass('show');
$('#enableApi').prop('disabled', false);
$('#project_btn').prop('disabled', true);
}
}
});
})
即使console.log('message')显示为true,它也始终显示'Message is False'。
我究竟做错了什么?
请帮帮我!
提前致谢!
问题似乎与条件语句有关
if(data.msg = 'false'){..}
& else if(data.msg = 'true'){..}
这两个语句分配值,而不是检查条件
用double(==)或三重equals(===)替换单个equal(=)。 还要注意( ==
)和( ===
)之间的区别。 ===
中将没有类型转换。
if(data.msg === false){..}
& else if(data.msg === true){..}
该==不应该在这里使用,因为检验报告JavaScript的平等经营用途可能导致意外的类型coercions.It被认为是一个很好的做法,使用类型安全的相等运算符===代替定期对口==
因此,可以使用===代替==来解决
if(data.msg === false){
console.log('Message is False');
$('#message').addClass('show');
}else if(data.msg === true) {
console.log('Message is True');
$('#message2').addClass('show');
$('#enableApi').prop('disabled', false);
$('#project_btn').prop('disabled', true);
}
这个:
if(data.msg = 'false'){
应该:
if(data.msg == 'false'){
如果要比较,请使用“ ==”,但如果要设置值,请使用“ =”
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.