2016. 8. 9. 15:00

Html Post 형식으로 데이터를 날렸더니 405 에러가 났습니다.

 

같은 도메인에 다른 사이트(가상 디렉터리나 응용 프로그램 등을 추가했을 때 )로 넘기면 405 에러가 난다는 겁니다.

IIS 기본설정이 그렇게 돼 있기 때문에 수정하면 된다는데...

 

 

1. 일반적인 해결 방법

대표적인 수정방법은 아래와 같습니다.

참고 : somacon - How to Resolve an HTTP 405 Resource not allowed Error in IIS

 

IIS7을 기준으로 보면

IIS > 설정할 웹사이트 > 기능 보기 > 처리기 매핑

로 들어가서

 

오른쪽 위에 작업에 있는 추가 메뉴 중 한 개를 선택하여 추가하시면 됩니다.

그전에 오류 내용을 확인해 봅시다.

 

 

오류를 준 처리기가 'StaticFile'입니다,.

이제 '처리기 맵핑'에서 'StaticFile'를 찾아 수정해 봅시다.

 

그래도 여전히 오류가 납니다.

 

에러 내용을 보면 '405'에러입니다.

기본적으로 405 에러는 파일 자체는 찾았는데 처리가 안 되서(프로토콜 같은 문제들)로 인해 뜨는 것입니다.

 

 

2. 엉뚱한 곳에서 발견되 오류

그런데 'html post'데이터에 url의 마지막에 슬러시가 빠져있다는 지적을 받고 설마 했는데......

됩니다!

 

원래 url에서 맨 마지막 슬러시 문제는 별 의미가 없습니다.

특수한 경우가 아니라면 자동으로 처리되기 때문입니다.

 

혹시나 라우팅 테이블 문제인가 해서 수정해 보았지만 똑같이 '405'에러가 났습니다.

('ASP.NET MVC'에서는 주소 라우팅에서 'id'값을 받게 되어있는 게 기본이라 그것 때문인가 해서 빼고 테스트해봤지만 마찬가지-_-;;;;)

원래 마지막 슬러시 때문에 에러가 난 것이라면 '404'에러가 떠야 맞는 겁니다.

 

결국 처리기 자체가 마지막 슬러시가 있어야 post 데이터를 정상적으로 인식한다는 소리입니다.

결론은 html로 포스트 데이터 날릴 때는 마지막에 슬러시 꼭 넣는 걸로 ㅎㅎㅎ

 

 

마무리

이걸로 2일 잡아먹음.....