타 회사와 다른 연동 작업을 하다가 CORB 오류 발생.
피들러로 값 찍어보니 서버에서 값을 제대로 가져오는 것 같은데고, ㅁ브라우저에서 표시가 계속 안되는 상황 ..
[피들러 내용]
CORS 오류는 많이 봐왔는데, CORB 오류는 처음 보는 것이였다 ..
타 회사에서 우리 쪽 url을 어떻게 호출하는지 확인해보니
function function_name(url){
$.ajax({
url: url,
crossDomain: true,
dataType: "jsonp",
type: 'GET',
cache : true,
timeout : 30000,
success: function( data, textStatus){
});
}
해당 코드 형식으로 호출하고 있었다.
내가 알기론 jsonp를 사용하여 호출하려면 콜백메서드가 있어야하는데, 우리 url 빼고 다른 url들은 정상적으로 호출되는 것 보면 이런식으로 호출해줘도 괜찮나보다.
"그럼 왜 오류가 나냐고 ㅠㅠ"
구글링을 해보니, 아래 오류처럼 MIME 형식 text/html 오류가 나는 경우면 호출하는 url에 문제가 있어서 혹은 잘못된 url이기에 오류가 날 수 있다고 했지만 나는 정상적인 url 이였다..
또 Access-Control-Allow-Origin: * 관련된 응답 헤더들을 모두 허용해주어야 한다는 것이였다.
하지만 다 허용해줘도 안됨 ..
내 케이스에서 해결한 방법 !
- Access-Control-Allow-Origin: * 혹은 Access-Control-Allow-Origin: "허용해줄 url" 추가
- Access-Control-Allow-Methods:GET
- Access-Control-Allow-Headers: Content-Type
4. X-Content-Type-Options: nosniff 도 추가해줄 것 !
X-Content-Type-Options를 설정해주면 반드시 정해진 MIME 타입형식으로 응답해주어야 함! <꼭 명시할 것 >
따라서 응답 헤더의 Content-Type : application/javascript로 설정
역시 보안이 중요해지는 만큼 개발자의 할 일도 많아지는 것 같다 ....