토큰 정보가 올바르지 않습니다 - 해결 방법
본문
토큰 정보가 올바르지 않습니다 이런 메시지는 소스를 일부 수정하는 과정에 주석이나 echo 등으로
ajax.token.php 에서 리턴 해주는 값 외의 정보가 리턴되면서 나타나는 현상입니다.
ajax.token.php, ajax.write.token.php에서는 json type으로
{'error' =>$error, token' => $token, 'url' => G5_URL}
이 외의 데이터가 넘어 오면 데이터 분석(parse)가 제대로 안되어 무조건 토큰정보가 ~~ 에러납니다.
확인 방법은 admin.js 에서
function get_ajax_token(){
var token = "",
admin_csrf_token_key = (typeof g5_admin_csrf_token_key !== "undefined") ? g5_admin_csrf_token_key : "";
$.ajax({
type: "POST",
url: g5_admin_url+"/ajax.token.php",
data : {admin_csrf_token_key:admin_csrf_token_key},
cache: false,
async: false,
dataType: "json",
success: function(data) {
if(data.error) {
alert(data.error);
if(data.url)
document.location.href = data.url;
return false;
}
token = data.token;
} ,
error: function(r, s, e) {
alert(r.status + "\n" + r.responseText + "\n" + e);
}
});
return token;
}
위 코드에서 초록색 배경 글을 추가해서 확인 해보세요...
클릭했을 떄 alert창에서 에러코드 다음 줄에
위의 리턴 값 - 빨간색 줄 외의 텍스트가 있으면 무조건 에러납니다.
외의 부분이 있는 php 파일 찾아 그 부분을 삭제하면 웃습니다....
답변 4
토큰정보 올바르지 않다는 메시지는 이런과정에서 에러나와요
1. 제이쿼리문제
2. php 소스코드가 문제 있어서 스크립트를 방해
3. common.js 에서 제공되는 submit 이벤트 를 그대로 사용하지 않을때
근데 저거 ajax 가 어드민에서 쓰이는거 같은데 프론트엔드에서 쓰시려는건가요?
이거 팁인가요?
오류가 나면 왜 나는지 원인을
에러메시지를 통해서 알아 볼 수 있습니다....
alert(r.status + "\n" + r.responseText + "\n" + e);
토큰 정보가 올바르지 않습니다 라는 메시지가 뜨면
위의 코드를 넣어서
alert 창에 r.responseText 토근정보의 응답 메시지를
보고 에러 원인을 찾을 수 있을 것입니다.
Hook을 사용한다고 extend에 여러개 올렸는데요.
원래 다운로드 받았을 때의 extend에 있는 파일로 변경하니까 토큰에러가 없어졌습니다.
제 경우이긴 하지만요^^