[英]How to add error handling in Jquery Ajax Form submission
這是我的代碼
<script type="text/javascript">
$(document).ready(function() {
$('#spc-comment-flag-form').submit(function() {
$.ajax({
data: $(this).serialize(),
type: $(this).attr('method'),
url: $(this).attr('action'),
success: function(data) {
if( data['error'] == false) {
var msg = 'We got your flag. Our moderators will now look into it. You may close the window now!';
$('#spc-comment-flag-response').html(msg);
}
else {
$('#spc-comment-flag-response').html(data);
}
},
});
return false;
});
});
</script>
編輯
在服務器端它的東西是這樣的:
@csrf_protect
@login_required
def flag(request, comment_id, next=None):
if not request.is_ajax():
raise Http404
data = {}
if request.method == 'POST':
...
data = simplejson.dumps(data)
return HttpResponse(data, mimetype="application/javascript")
else:
raise Http404
我基本上是服務器端的人,很少寫JS。 我發送了“錯誤”:如果錯誤消息和“錯誤”錯誤,則為true:如果服務器上沒有錯誤,則為false!
我不知道為什么在上面的代碼中條件邏輯不起作用!! 任何人都可以幫我修復它嗎?
試試這個......
$(document).ready(function() {
$('#spc-comment-flag-form').submit(function() {
$.ajax({
data: $(this).serialize(),
type: $(this).attr('method'),
url: $(this).attr('action'),
success: function(data) {
if( data['error'] == false) {
var msg = 'We got your flag. Our moderators will now look into it. You may close the window now!';
$('#spc-comment-flag-response').html(msg);
}
else {
$('#spc-comment-flag-response').html(data);
}
},
error: function (data) {
var r = jQuery.parseJSON(data.responseText);
alert("Message: " + r.Message);
alert("StackTrace: " + r.StackTrace);
alert("ExceptionType: " + r.ExceptionType);
}
});
return false;
});
});
您可以使用此代碼..如果您想處理Web 請求中的錯誤...
http://api.jquery.com/jQuery.ajax/
$.ajax({
}).done(function (data) {
}).fail(function (jqXHR, textStatus) {
});
在您的服務器端驗證中,您可以使用json返回錯誤...
success: function(data)
{
if(data.error){
//alert error
}
else{
//alert('Success');
}
},
error: function(XMLHttpRequest, textStatus, errorThrown)
{
alert('Internal server error');
//some stuff on failure
}
此error
回調還處理錯誤,這些錯誤未在服務器端捕獲。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.