일반적으로 js에서 새 창을 여는 것은 매우 간단합니다. window.open(url)만 있으면 됩니다.
하지만 서버에 매개변수를 전달하려고 하는데 매개변수가 긴 문자열인 것 같고 get 메소드에 제출되는 매개변수의 길이가 제한되어 있으므로 다음과 같은 요구사항이 있습니다.
1. js에서 게시물 제출 구현
2. 반환된 페이지가 새 창에 표시됩니다
처음에는 이렇게 했습니다.
$.ajax({
유형: "POST",
url: '${contextPath}/analyse/detail.do',
데이터: {carNum:carNum,ids:refIds},
성공: function(str_response) { var obj = window.open("about:blank")
~
~
})
jQuery ajax를 통해 제출하면 반환된 데이터가 새 페이지에 작성되지만 브라우저가 자동 팝업창을 가로채기 때문에 사용자가 직접 차단을 해제해야 하고 사용자 경험이 매우 좋지 않습니다.
그런 다음 양식 제출을 시뮬레이션하여 구현했습니다
function post(URL, PARAMS) { var temp_form = document.createElement("form");
temp_form .action = URL;
temp_form .target = "_blank";
temp_form .method = "게시물";
>
opt.name = x;
opt.value = PARAMS[x];
temp_form .appendChild(opt);
~
document.body.appendChild(temp);
>
}
참고: 새 창을 열려면 양식의 대상 속성을 '_blank'로 설정해야 합니다
그런 다음 post('${contextPath}/analyse/detail.do',{carNum:carNum,ids:refIds})를 요청하면 됩니다