여관주인

쓸떼 없는 관리자 페이지 토큰 방식 변경

토큰 정보가 올바르지 않다는 오류가 갑자기 발생해서 확인해보니
현재 ajax의 async: false 옵션이 권장되지 않네요.
당장은 상관 없지만 언.. 젠가는 공식으로 변경해야할 문제니까 올려봅니다.

정작 오류 원인은 개인 코드 문제 였네요 :p

[Deprecation] Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check https://xhr.spec.whatwg.org/.

adm/admin.js 의 하단 쪽 $(function (){ 으로 시작하는 부분을 아래로 교체 합니다.
버튼명이 "불러오는 중"으로 변경 된 후 버튼이 비활성 되며(다시 누룰 수 없는 상태)
토큰을 정상적으로 받아오면 실행 합니다.

#1 폼에 토큰란이 이미 존재하는 경우 확인하는 과정 추가 했습니다.
#2 필수 입력란의 공란을 대비해 1.5초후 버튼을 다시 활성화 합니다.

$(function () {
$('form input:submit').click(function () {
var button = this;
var label = button.value;
var form = this.form;
var token = form.elements.token;
if (token && token.value) {
return true;
}
$.ajax({
type : 'post',
url : g5_admin_url + "/ajax.token.php",
cache : false,
dataType: 'json',
success : function (data) {
if (data.error) {
alert(data.error);
data.url && location.replace(data.url)
}
if (data.token) {
if (token) {
token.value = data.token;
} else {
$(form).append('<input type="hidden" value="' + data.token + '"').submit();
}
form.submit();
} else {
alert('토큰 정보가 올바르지 않습니다.');
}
},
error : function () {
button.value = '실패';
}
});
this.value = '불러오는 중';
this.disabled = true;
setTimeout(function () {
button.value = label;
button.disabled = false;
}, 1500);
return false;
});
});
|

댓글 2개

어떤 문제인지 모르겠지만 (영카트 5.2 버전입니다.)
이렇게 바꿨을 경우 관리자 기본환경설정 저장이 안되는 문제가 있었습니다.
지금은 다시 원복했는데요.. 버전에 따라서 차이가 있는지 궁금합니다.
댓글을 작성하시려면 로그인이 필요합니다.

그누보드5 팁자료실

+
제목 글쓴이 날짜 조회
8년 전 조회 5,201
8년 전 조회 4,577
8년 전 조회 1.5만
8년 전 조회 1.8만
8년 전 조회 4,495
8년 전 조회 5,175
8년 전 조회 7,852
8년 전 조회 5,085
8년 전 조회 6,203
8년 전 조회 5,727
8년 전 조회 1.2만
8년 전 조회 5,976
8년 전 조회 1.7만
8년 전 조회 5,511
8년 전 조회 6,215
8년 전 조회 7,736
8년 전 조회 5,647
8년 전 조회 7,457
8년 전 조회 8,408
8년 전 조회 8,155
8년 전 조회 4,345
8년 전 조회 4,341
8년 전 조회 4,261
8년 전 조회 9,290
8년 전 조회 4,646
8년 전 조회 4,293
8년 전 조회 4,868
8년 전 조회 6,972
8년 전 조회 7,229
8년 전 조회 4,664