하하22
389
2020-05-22 12:52:16 작성 2020-05-22 13:50:05 수정됨
4
107

스프링 Request method 'GET' not supported 오류


form 태그에 post로 값을 보내는데 "Request method 'GET' not supported" 이런 오류가 뜨네요.

선택 상품 구매시 form 메소드 post로 보내는데 왜 get에러가 뜨는지 모르겠습니다.

구글 검색해보니 해당 컨트롤러 부분을 Getmapping으로 바꿔보라고해서 바꿔봤지만 그렇게하면 화면이 아예 뿌려지질 않습니다. 어떻게 해결해야할까요??


.jsp 파일

<form action="ordertestform.hta" method="post" id="form-cart">

//전체 상품 구매
$("#btn-buy-all").click(function(e){
   	location.href="/cart/orderAllTests.hta";
})
   		
  //선택 상품 구매
 $("#btn-buy-ck").click(function(e){
   	$("#form-cart").attr("action", "/cart/orderCkTests.hta");
   	$("#form-cart").submit();   			
  })

컨트롤러

@PostMapping("/orderCkTests.hta")
//public 메소드 이하 생략

전체코드


<body>
	<%@ include file="../common/header.jsp"%>
	<%@ include file="../common/user-sidebar.jsp"%>

	<div class="col-sm-9">
		<br>
		<br>
		<img alt="" src="/imgs/장바구니 1단계.PNG" style="width: 100%; height: 90px;">
		<p style="font-size: 12px; color:#999999; margin: 15px 0px 0px 10px; ">* 장기간 상품 보관 시 상품 조기품절 또는 할인행사 등의 경우로 품절 또는 판매가 변동이 발생할 수 있습니다.</p>
		<br>
		<p>장바구니에 <span style="color: red;">${cnt }개</span>의 상품이 들어 있습니다.</p>
		<form action="ordertestform.hta" method="post" id="form-cart">
			<table class="table table-bordered" id="test-table">
				<colgroup>
					<col width="5%">
					<col width="5%">
					<col width="*">
					<col width="10%">
					<col width="10%">
					<col width="10%">
					<col width="10%">
				</colgroup>
				<thead id="test-thead">
					<tr>
						<th><input type="checkbox" id="ck-all-test"
							name="test-all-price" /></th>
						<th>번호</th>
						<th>모의고사명</th>
						<th>상품금액</th>
						<th>할인금액</th>
						<th>합계</th>
						<th></th>
					</tr>
				</thead>
				<tbody>
					<c:choose>
						<c:when test="${empty userCartTestLists }">
							<tr>
								<td colspan="6" class="text-center">장바구니에 담긴 상품이 없습니다.</td>
							</tr>
						</c:when>
						<c:otherwise>
							<c:forEach var="userCartTest" items="${userCartTestLists }"
								varStatus="loop">
								<tr>
									<td><input type="checkbox" name="testnos"
										value="${userCartTest.no }" /></td>
									<td>${loop.count }</td>
									<td>${userCartTest.name } > ${userCartTest.ep }</td>
									<td><span class="price"><fmt:formatNumber value="${userCartTest.price }"/></span>원</td>
									<td><fmt:formatNumber value="0"/>원</td>
									<td><fmt:formatNumber value="${userCartTest.price }"/>원</td>
									<td><a
										href="/cart/delTestInCart.hta?testno=${userCartTest.no }"
										class="btn btn-danger btn-xs">삭제</a></td>
								</tr>
							</c:forEach>
						</c:otherwise>
					</c:choose>
				</tbody>
			</table>
			<div class="form-group">
				<input type="hidden" id="test-total" name="order-test-total-price" />
				<div class="row">
					<div class="col-sm-8">
						<a href="" class="btn btn-default btn-xs" id="a-del-ck">선택상품 삭제</a>
						<a href="" class="btn btn-default btn-xs">좋아요 보관</a>
					</div>
					<div class="col-sm-4 text-right">
						<button type="button" class="btn-black-lg" >쇼핑 계속하기</button>
					</div>
				</div>
			</div>
		</form>
		<br>
		
		<table id="sum-table" >	
			<colgroup>
				<col width="33%">
				<col width="33%">
				<col width="*">
			</colgroup>
			<thead>
				<tr>
					<th>상품금액 <span>(상품 : <span id="span-cnt">${cnt }</span>건)</span></th>
					<th>총 할인금액</th>
					<th>최종 결제금액</th>
				</tr>
			</thead>
			<tbody>
				<tr id="tr-sum">
					<td><span id="span-total-price">0</span>원</td>
					<td><span style="margin-right: 30px; font-size: 20px;" class="glyphicon glyphicon-minus-sign"></span><span>0</span>원</td>
					<td><img style="margin: 0px 30px 5px 0px; height: 22px;" alt="" src="/imgs/equals.png"/><span style="color: red;" id="span-final-price">0</span>원</td>
				</tr>
			</tbody>
		</table>
		
		<p style="text-align: center;">
			<br>
			<button class="btn-black-lg" type="button" id="btn-buy-all" >전체상품 주문</button>
			<button class="btn-black-lg" type="button" id="btn-buy-ck" style="background-color: #f44336;">선택상품 주문</button>
		</p>
	</div>

	</div>
	</div>
	<script type="text/javascript">
		
		var length = ${cnt};
		checkAll();
   		totalPrice();
   		
   		//전체 상품 구매
   		$("#btn-buy-all").click(function(e){
   			location.href="/cart/orderAllTests.hta";
   		})
   		
   		//선택 상품 구매
   		$("#btn-buy-ck").click(function(e){
   			$("#form-cart").attr("action", "/cart/orderCkTests.hta");
   			$("#form-cart").submit();
   			
   		})
   		//선택 상품 삭제
   		$("#a-del-ck").click(function(event){
   			event.preventDefault();
   			$("#form-cart").attr("action", "/cart/delCkTestsInCart.hta");
   			$("#form-cart").submit();
   		})
   		
   		//모의고사 전체 체크 클릭시
   		$("#ck-all-test").change(function(){
   			var status =  $(this).is(":checked");
   			$("#test-table :checkbox").prop("checked", status);
   		})
   		
   		//체크된 총 상품 금액 및 최종 결제금액
   		function totalPrice(){
   			var sum = 0;
   			$("#test-table tbody :checked").closest("tr").find("span").each(function(){
	   			var price = parseInt($(this).text().replace(/,/g , ''));
   				sum+=price;
   			})
   			console.log(sum);
   			$("#span-total-price").text(sum.toLocaleString());
   			$("#span-final-price").text(sum.toLocaleString());
   		}
   		
   		//모든 상품 체크하기
   		function checkAll(){
   			$(":checkbox").prop("checked", "true");
   		}
   		
   		//체크박스 상태가 변경될 때마다
   		$(":checkbox").change(function(){
   			var ckLen = $("tbody :checked").length;
   			if(ckLen == length){
   				$("#ck-all-test").prop("checked", true);
   			} else {
   				$("#ck-all-test").prop("checked", false);
   			}
   			$("#span-cnt").text(ckLen);
   			totalPrice();
   		})
   		

   
   </script>



0
0
  • 답변 4

  • 호빵
    332
    2020-05-22 13:13:42

    jsp 파일 소스 전체부분 볼 수 있을까요?

    0
  • 하하22
    389
    2020-05-22 13:50:46

     호빵

    전체코드 올려서 수정했습니다!

    0
  • 호빵
    332
    2020-05-22 14:42:20 작성 2020-05-22 14:43:40 수정됨

    소스상으로 봤을때는 문제가 없어보이네요...

     $("#btn-buy-ck").click(function(e){

        $("#form-cart").attr("action", "/cart/orderCkTests.hta");

            $("#form-cart").attr("method","POST");

        $("#form-cart").submit();   

      })


    요렇게  한번 해보시고 안되시면 

    핸들러나 인터셉터쪽에서 뭔가 처리를 하는것은 아닐지 의심 해봐야 할 것 같아요

    0
  • 하하22
    389
    2020-05-22 15:07:11 작성 2020-05-22 15:07:23 수정됨

    호빵


    다른 jsp파일에서 아래와 같이 설정했더니 오류가 뜬거였네요. 왜인지는 모르겠지만요ㅜ

    답변 감사합니다!

    <script type="text/javascript" src="/resources/js/jquery.ajax-cross-origin.min.js"> </script>


    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.