我正在开发一个Django项目,我需要通过ajax处理表单。我向Django视图发送ajax请求并以JSON格式返回响应,现在我需要申请 - 这些数据的条件,但这些条件不起作用,无论如何总是运行第一个条件。
这是我的代码:
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。
我做错了什么?
请帮帮我!
提前致谢!
答案 0 :(得分:0)
问题似乎与条件陈述
有关 if(data.msg = 'false'){..}
& else if(data.msg = 'true'){..}
这两个语句分配值,而不是检查条件
用double(==)或三等于(===)替换单个等号(=)。另请注意(==
)和(===
)之间的区别。 ===
中没有类型转换。
if(data.msg === false){..}
& else if(data.msg === true){..}
答案 1 :(得分:0)
== 不应该在这里使用,因为检查会报告可能导致意外类型强制的JavaScript相等运算符的使用。使用类型安全相等运算符 === 而不是常规对应 ==
因此,可以使用 === 代替 ==
来解决 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);
}
答案 2 :(得分:0)
这:
if(data.msg = 'false'){
应该是:
if(data.msg == 'false'){
如果您想比较使用' ==',但如果您想设置值,请使用' ='