[英]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.