I am calling third party web page using jQuery ajax. According to their page they sent me status code 200 if log-in success and 401 if log-in unsuccessful. Here is my jquery code sample. This code works fine on IE but not work on Chrome or Firefox. What could be the issue?
$.ajax({ type: 'GET', url: hostURL + 'j_teo_security_check?callback=?', dataType: 'json', data: ({j_username : $("#inp_user_name").val(), j_password: $("#inp_user_pwd").val()}), statusCode: { 401:function() { alert("401"); }, 404:function() { alert("404"); }, 200:function() { alert("200"); }, 201:function() { alert("201"); }, 202:function() { alert("202"); } }, complete: function(httpObj, textStatus){ alert(httpObj.status); }, error: function(){ alert("error"); }, async: false });
I tried all the functions error, success, complete, and statusCode. None of them handle the 401 error.
Try changing your request type from GET to HEAD, and console. log the returned result to see what status code is actually set in the header.
Definition and Usage. The ajaxSetup() method sets default values for future AJAX requests.
In this article, I will show how to use AJAX with Flask, a Python framework, to receive and display the values entered in a form asynchronously. I added the source code that we need at the end of the article.
I could fix it as bellow.
$(document).ready(function(){ $("#cmdLogin").click(function(){ var request = $.ajax({ url : hostURL + 'j_teo_security_check', data: ({j_username : $("#inp_user_name").val(), j_password: $("#inp_user_pwd").val()}), dataType : "jsonp", timeout : 5000 }); request.success(function() { loginSuccess(); }); request.error(function(httpObj, textStatus) { if(httpObj.status==200) loginSuccess(); else loginFail(); }); }); })
What I did was added timeout since 401 error never came back. Since it goes to error function even with status code 200 and parsing errors I made it to ignore status 200 inside the error.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With