본문 바로가기

감탄과 탄식 그 사이/. 어쩌다 마주친 그대 오류에 내 마음을 빼앗겨 버렸네

405 Method Not Allowed 오류

쾅점수 5점 만점에 3.5점 되겠다

에러가 콘솔에 안 뜬 첫 오류여서 적잖이 당황했다 그래서 쾅점수 0.5점을 더 쳐줬다

 

 

 

 

실행 했더니
405 오류를 줬다

분명 예상되는 특정 함수에서 뜨는 에러인데 왜인지는 잘 모르겠었습니다

그래서 에러 발생이 예상되는 특정 함수를 모두 다시 봤고 1. 제가 실수로 타이핑해서 오류가 난 게 있는지 2. 새로 만들어 넣어준 함수에 어떤 오류가 있는지 를 확인했지만 전혀아니었다(롤백을 해서 돌려봤지만 아니었다)

 

에러 코드만 뜨고 콘솔에 왜 이런 오류가 뜨는지는 안나와서 굉장히 난해했던 오류다

go를 쓰는 중이어서, golang에 내장되어있는 기능이길래 golang 전용인 줄 알고

golang 405 Method Not Allowed 로 쳤었는데

이게 해결책을 나 스스로 찾게 해준 나쁘다면 나쁘고 좋다면 좋은 원인이었다

 

해결책은 에러 코드에 잘 나와있었습니다 바로 "Method"

 

Method는 저의 경우 REST API에서 HandleFunc 뒤에 붙여주는 함수의 역할을 지정할때 썼습니다

정해진 대로 받기만 하는지(GET) 아니면 직접 입력한 데이터를 받는지(POST)를요

바로 이 Method에서 문제가 있었던 거죠

그럼 오류가 예상되는 특정 함수에 Method를 볼까요?

분명 POST로 데이터를 주면 transaction이 받아줘야하는데 Method("GET")으로만 되어있어 405 Method not allowed 에러가 떴었던 것입니다

 

뭐 해결하고 나니까 "Method가 저 Method였구나" 보이는 것 같은데 이런 오류가 처음이라면 아는 사람은 몇 없지 않겠습니까

요약 : 405 Method Not Allowed 오류는 Method 매칭이 잘못되어 권한 거부가 일어나고 함수가 실행되지 못한 경우 나타나는 에러이다

 

자기 반성 : 다음부터는 golang에 한정된 기능인지 아닌지를 잘 판단하고 구글링 하기
http.Status니까 센스있게 "http관련이니 golang을 빼고 검색해봐야겠다" 라는 생각을 할 수 있길...

 

 

잘 참고하시고 원만히 해결하시길 바랍니다!