jQuery ajax 핸들 401 무단
jQuery ajax를 이용하여 타사 웹페이지로 전화를 드립니다.그들의 페이지에 의하면 로그인이 성공하면 상태 코드 200을, 로그인이 실패하면 401을 보내주었다고 합니다.여기 제 jquery code 샘플이 있습니다.이 코드는 IE에서는 잘 작동하지만 Chrome이나 Firefox에서는 작동하지 않습니다.무엇이 문제가 될 수 있습니까?
$.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
});
모든 기능 오류, 성공, 완료, statusCode를 시도했습니다.그들 중 누구도 401 오류를 처리하지 못합니다.
아래와 같이 고정할 수 있습니다.
$(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();
});
});
})
401 에러가 다시 발생하지 않아 추가 타임아웃을 했습니다.상태 코드 200과 파싱 오류에도 에러 기능을 하기 때문에 에러 내부의 상태 200을 무시하도록 만들었습니다.
네, jsonp를 사용하시는 것으로 보이는데 jsonp의 한계일 수도 있을 것 같습니다.한번 보세요.
지난번 게시물에 해결책이 있는 것 같습니다.도움이 되길 바랍니다!
언급URL : https://stackoverflow.com/questions/10267683/jquery-ajax-handle-401-unauthorized
'programing' 카테고리의 다른 글
기존 ColdFusion 2016 ORM 애플리케이션에 추가 (0) | 2023.09.12 |
---|---|
Woocommerce 3에서 프로그래밍 방식으로 주문에 배송 추가 (0) | 2023.09.12 |
Oracle에 시스템 날짜 삽입 (0) | 2023.09.12 |
Expulent 모델 인스턴스의 기본 키 가져오기 (0) | 2023.09.12 |
TFS에서 여러 작업 항목을 일괄 업데이트하는 방법 (0) | 2023.09.12 |