무신사에서 옷 시킨거 반품할 게 있어서 CJ대한통운 홈페이지에서 반품 신청을 하려고 했다.
운송장을 입력하고..
빈 칸 다 채우고 '예약 신청하기' 버튼을 누르니 '받는 분 전화번호 형식을 확인해 주세요' 라고 나온다.
무신사 대표번호가 1544-7199인데, 보통 핸드폰은 010-xxxx-xxxx이고 전화번호는 02 or 03x 04x ... -xxxx-xxxx라서 앞에 000을 붙이니 인식을 못하는것.
String.prototype.isPhone = function() {
var arg = arguments[0] ? arguments[0] : "";
return eval("(/(02|0[3-9]{1}[0-9]{1})" + arg + "[1-9]{1}[0-9]{2,3}" + arg + "[0-9]{4}$/).test(this)");
}
if(!rcvrTel.isPhone()) {
alert('받는 분 전화번호 형식을 확인해 주세요');
$('#rcvrTel1').focus();
return false;
}
소스 내용이다. regex 부분 보면 대표번호를 생각 못한 것 같다.
해결방법은 그냥 자바스크립트 소스에 있는 validation 코드 건너뛰면 된다.
function fncValidate() {
var frm = document.frmReservation;
var formData = new FormData(frm);
//예약
$.ajax({
url : '/ko/tool/parcel/insertReservation',
type : 'POST',
beforeSend : function(request) {
request.setRequestHeader("X-CSRF-TOKEN", "/*이건 님들 소스에 있는 값 복사하세요*/");
},
data : formData,
dataType : 'json',
processData : false,
contentType : false,
cache : false,
timeout : 10000,
error : function(xhr) {
if (xhr.status == "403") {
location.href = location.href;
}
},
success : function(responseText) {
if (responseText != null && responseText.reservationResultMap != null) {
if (typeof responseText.reservationResultMap.resultList.length > 0) {
alert('예약에 실패하였습니다.');
return;
} else {
$('#resultRcptNo').text(responseText.reservationResultMap.resultList[0].rcptNo);
$('#resultSendrCustNm').text(responseText.reservationResultMap.sendrCustNm);
$('#resultSendrAddr').text(responseText.reservationResultMap.sendrAddr + responseText.reservationResultMap.sendrDetailAddr);
$('#resultRcvrCustNm').text(responseText.reservationResultMap.rcvrCustNm);
$('#resultRcvrAddr').text(responseText.reservationResultMap.rcvrAddr + responseText.reservationResultMap.rcvrDetailAddr);
//해당영역펼침
$('.box-toolList-1 .tit-whLine-1').removeClass('on');
$('.box-toolList-1 .processStep').removeClass('show');
$('.box-toolList-1 .tit-whLine-1').eq(3).addClass('on');
$('.box-toolList-1 .processStep').eq(3).addClass('show');
//화면이동
var goTop = $('.box-toolList-1 .tit-whLine-1').eq(3).offset().top;
$('html, body').stop().animate({scrollTop : goTop - 75 + 'px'}, 0);
}
} else {
alert('서비스가 원활하지 않습니다.');
}
}
});
}
콘솔창(크롬이면 F12 눌렀을 때 Console 나옴)에 위 함수 내용 통째로 복사해서 붙여넣은 뒤 반품 예약버튼 누르면 정상적으로 완료된다. 서버사이드에서 검사 안하는 것 같다.
중간에 POST 요청 보낼때 CSRF 토큰값 설정하는 부분 있는데 그건 여러분 브라우저 반품예약 페이지에서 우클릭-페이지 소스 보기에서 복붙 하면 된다.
위 과정을 잘 모르겠다면 그냥 전화번호 앞부분에 000 대신 02 지역번호 넣어버려도 되지 않을까? 어짜피 계약택배라 굳이 택배기사가 전화할 일도 없을테니...
반응형
'일상 > 정보' 카테고리의 다른 글
백령도에서 휴가를 나오는 병사의 하루 (0) | 2020.07.11 |
---|---|
백령도 선박 통제 예측하는 방법 (4) | 2020.06.17 |
보세구역이란 (0) | 2020.02.14 |
TSA 마스터키 유출되다 (0) | 2020.02.13 |
TSA락에 대해 알아보자 (0) | 2020.02.12 |