티스토리 뷰
$.ajax({
type: "POST",
url: "/orders/deleteorders",
contentType: 'application/json; charset=utf-8',
dataType: "json",
data: JSON.stringify({
merchant_uid: merchantId,
cancel_request_amount: totalPrice,
reason: "테스트 결제 환불",
})
}).done((response) => {
alert(response.merchant_uid);
alert("성공")
}).fail(function (error){
alert("실패")
alert(JSON.stringify(error));
});
이런 방식으로 ajax요청을 했는데 403에러부터 여러가지 에러나 발생해서 해결법을 적어둠.
1. 스프링 서큐리티 사용할때, ajax요청시 403에러 발생 해결법
- 오늘 아임포트 결제 취소 구현하려고 여러가지 하다가 ajax요청이 죽어도 컨트롤러로 안가고.. 갔는데 계속 fail로 response가 와서 거의 하루를 다 날렸다. 그래서 적어두는 내용.
- 클라이언트의 javascript에서의 ajax요청시 모든 값들이 정상이라는 가정.
- f12눌러서 나오는 에러가 403일때 스프링 서큐리티 사용한다면 링크를 참고해서 해결하면 된다.
https://velog.io/@jyleedev/514-ajax-post-%ED%86%B5%EC%8B%A0-403-error
[Ajax 에러] - 스프링 시큐리티 ajax post 통신 403 forbidden error
ajax 통신 시 403 forbidden 에러 발생 임시 비밀번호를 전송하는 컨트롤러(/sendPwd) 를 호출하기 위해 생성한 javascript 함수 sendEmail 호출 시 SecurityConfig에서 permit 해줬음에도 불구하고 계속 403 에러가
velog.io
2. 1번의 이유가 발생하는 이유와 csrf의 개념
- 간단히 말해서 스프링 서큐리티에서 csrf 공격을 막기 위해서 token을 사용하는데, 위 링크 방법을 사용하지 않으면 token이 없기 때문에 ajax요청을 해도 서큐리티에서 막아서 우리는 요청을 전달할 수 없다는 것이다.
- 자세한 내용은 아래 링크 참고!
https://codevang.tistory.com/282
Spring Security_CSRF Token의 개념과 사용 방법
- Develop OS : Windows10 Ent, 64bit - WEB/WAS Server : Tomcat v9.0 - DBMS : MySQL 5.7.29 for Linux (Docker) - Language : JAVA 1.8 (JDK 1.8) - Framwork : Spring 3.2.9 Release - Build Tool : Maven 3.6..
codevang.tistory.com
3. readyState=4, status=200 일때 나는 parsererror 이유
- ajax 요청의 dataType 문제다. json으로 작성했는데 controller에서는 String으로, 즉 text로 response해줄 때 나는 오류이다.
- dataType:'text' 로 변경하거나 controller에서 json으로 응답하게끔 오브젝트를 반환해주면 해결된다.
'TIL' 카테고리의 다른 글
[TIL] 오늘 면접 후기 2022-10-26 (0) | 2022.10.26 |
---|---|
[TIL] Spring WebClient 를 사용해보자. 2022-10-25 (0) | 2022.10.26 |
[TIL] 스프링 DATA JPA 페이징 2022/10/22 (0) | 2022.10.22 |
[TIL] 스프링 JPA 페이징 2022/10/21 (0) | 2022.10.21 |
[TIL] DTO와 Entity는 어떻게 할것인가?? 2022/10/19 (0) | 2022.10.19 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 매크로
- Java Double형 비교방법
- C언어
- JPA #SPRING #ENTITY #DATABASE
- 나만의 강점
- 표준입출력 함수
- static의 장점 단점
- c 매크로
- Til
- ##연산자
- java
- 전처리기
- 영속성전파
- C++
- c 가변인자
- linux select
- Builder #SuperBuilder
- MySql 날짜 차이 구하기
- Java8 #java stream
- JPQL 사용하기
- JavaScript
- JPA #cascade
- 네트워크 오더링
- c++ 가변인자
- 이중 콜론 연산자
- ajax 403에러
- javascript 문자열 뒤집기
- 메소드 참조 연산자
- #define
- Double.compareTo(Double)
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
글 보관함