Sunday, 15 August 2010

javascript - $.ajax error function not detecting the HTTP 400 status code -



javascript - $.ajax error function not detecting the HTTP 400 status code -

i'm using similar code login form , works fine. server returns same error if fields missing. post http://localhost:3000/signup/local 400 (bad request). sign form's ajax isn't detecting it.

ajax:

$('#signup_form').submit(function (event) { $('#signup_processing_message').show(); event.preventdefault(); var fieldvalues = getformobj('signup_form'); $.ajax({ type: 'post', url: '/signup/local', data: fieldvalues, success: function (response, textstatus, xhr) { if (xhr.readystate === 4 && xhr.status === 0) { alert('aborted. network issue.'); } else if (response.message === 'success') { if ($('#signup_error_message').is(':visible')) { $('#signup_error_message').hide(); } $('#signup_processing_message').html('success'); settimeout(function (){ window.location.href = '/'; }, 500); } else { // ever happen? } }, error: function (response) { console.log(response); if ($('#signup_processing_message').is(':visible')) { $('#signup_processing_message').hide(); } if (response.status === 400) { $('#signup_error_message').html('please fill in fields correctly.'); } else { $('#signup_error_message').html('please fill in fields correctly.'); } $('#signup_error_message').show(); } }); }); function getformobj(formid) { var formobj = {}; var inputs = $('#' + formid).serializearray(); $.each(inputs, function (i, input) { formobj[input.name] = input.value; }); homecoming formobj; };

html

<div class="row"> <div class="col-md-4 col-md-offset-4"> <h1 class="text-center">signup</h1> <div class="well"> <form role="form" id="signup_form"> <div class="form-group"> <input type="text" class="form-control" id="signup_name" name="fullname" placeholder="full name"> </div> <div class="form-group"> <input type="email" class="form-control" id="signup_email" name="username" placeholder="enter email"> </div> <div class="form-group"> <input type="password" class="form-control" id="signup_password" name="password" placeholder="password"> </div> <button type="submit" class="btn btn-default btn-block">signup</button> <div id="signup_error_message" class="alert alert-danger"></div> <div id="signup_processing_message" class="alert alert-success">processing...</div> </form> </div> <p class="help-block text-center"><span class="glyphicon glyphicon-lock"></span> ssl secure</p> </div> </div>

we can see client-side receiving 400 code: http://screencast.com/t/ugxt8umyom

however, error function doesn't invoked @ all.

javascript node.js

No comments:

Post a Comment