엣지, HTTP403: FORBIDDEN 오류 관련 도움 좀 부탁드립니다..! 채택완료
그누보드5 기반으로 만든 사이트가 한글도메인 입니다..
한국경제.com 이라는 사이트 인데
엣지에서만 접속을 하면 이미지가 엑박.. 아예 안 보이는 현상이 있습니다.
엣지 개발자모드로 확인을 하면 아래와 같은 로그가 뜹니다.
</p>
<p>HTTP403: FORBIDDEN - 서버에서 요청을 이해했지만 수행을 거부하고 있습니다. GET - <a href="<a href="http://xn--289a1m847du9l.com/theme/stockmk/img/sec03-icon01.png" target="_blank" rel="noopener noreferrer">http://xn--289a1m847du9l.com/theme/stockmk/img/sec03-icon01.png</a>" rel="nofollow"><a href="http://xn--289a1m847du9l.com/theme/stockmk/img/sec03-icon01.pn" target="_blank" rel="noopener noreferrer">http://xn--289a1m847du9l.com/theme/stockmk/img/sec03-icon01.pn</a></a></p>
<p>
이와 관련 다른 개발자분에 글이 있는데 ..
링크참고 : https://ynimus.blogspot.com/2017/02/http403-forbidden.html">https://ynimus.blogspot.com/2017/02/http403-forbidden.html
제가 개발보단 퍼블 작업쪽 위주로 일을 하다보니..
답변을 봐도 어떻게 수정을 해줘야 할 지 모르겠어서요..
</p>
<p>ajax 통신 시 XMLHttpRequest 객체의 헤더에 Content-type 을 설정하지 않으면 위와 같은 현상이 발견되는 것을 확인.</p>
<p>Content-type 헤더를 붙여서 전송한 후 정상적으로 동작함.</p>
<p> </p>
<p><b>if (type){</b></p>
<p><b> xhr.setRequestHeader("Content-type", type);</b></p>
<p><b>}</b></p>
<p><b>
어떤 경로, 어떤 파일을 수정해 줘야 할까요??
////////////////////////////////////////////////////////////////////////////////////////
엣지 오류 관련 묻고 찾아보니 ㅠㅠ
아작스 부분에 넣어주라는데 .. 아작스 경로가 어떻게 되나요..?
https://thiago6.tistory.com/11">https://thiago6.tistory.com/11
</p>
<table data-tab-size="8">
<tbody>
<tr>
<td id="file-ajax-content-type-jsp-LC1"><script></td>
</tr>
<tr>
<td data-line-number="2" id="file-ajax-content-type-jsp-L2"> </td>
<td id="file-ajax-content-type-jsp-LC2">var targetReplytext = $("#replytext").val();</td>
</tr>
<tr>
<td data-line-number="3" id="file-ajax-content-type-jsp-L3"> </td>
<td id="file-ajax-content-type-jsp-LC3"> </td>
</tr>
<tr>
<td data-line-number="4" id="file-ajax-content-type-jsp-L4"> </td>
<td id="file-ajax-content-type-jsp-LC4">$("#button").click(function() {</td>
</tr>
<tr>
<td data-line-number="5" id="file-ajax-content-type-jsp-L5"> </td>
<td id="file-ajax-content-type-jsp-LC5">$.ajax({</td>
</tr>
<tr>
<td data-line-number="6" id="file-ajax-content-type-jsp-L6"> </td>
<td id="file-ajax-content-type-jsp-LC6">type:"POST",</td>
</tr>
<tr>
<td data-line-number="7" id="file-ajax-content-type-jsp-L7"> </td>
<td id="file-ajax-content-type-jsp-LC7">url:"/replies/new",</td>
</tr>
<tr>
<td data-line-number="8" id="file-ajax-content-type-jsp-L8"> </td>
<td id="file-ajax-content-type-jsp-LC8">header:{</td>
</tr>
<tr>
<td data-line-number="9" id="file-ajax-content-type-jsp-L9"> </td>
<td id="file-ajax-content-type-jsp-LC9">"Content-Type":"application/json", //Content-Type 설정</td>
</tr>
<tr>
<td data-line-number="10" id="file-ajax-content-type-jsp-L10"> </td>
<td id="file-ajax-content-type-jsp-LC10">"X-HTTP-Method-Override":"POST"},</td>
</tr>
<tr>
<td data-line-number="11" id="file-ajax-content-type-jsp-L11"> </td>
<td id="file-ajax-content-type-jsp-LC11">dataType:"text",</td>
</tr>
<tr>
<td data-line-number="12" id="file-ajax-content-type-jsp-L12"> </td>
<td id="file-ajax-content-type-jsp-LC12">data:JSON.stringify({ //JSON.stringify()로 데이터를 감싸줍니다.</td>
</tr>
<tr>
<td data-line-number="13" id="file-ajax-content-type-jsp-L13"> </td>
<td id="file-ajax-content-type-jsp-LC13">bno:"",</td>
</tr>
<tr>
<td data-line-number="14" id="file-ajax-content-type-jsp-L14"> </td>
<td id="file-ajax-content-type-jsp-LC14">replywriter:"사용자",</td>
</tr>
<tr>
<td data-line-number="15" id="file-ajax-content-type-jsp-L15"> </td>
<td id="file-ajax-content-type-jsp-LC15">replytext:targetReplytext</td>
</tr>
<tr>
<td data-line-number="16" id="file-ajax-content-type-jsp-L16"> </td>
<td id="file-ajax-content-type-jsp-LC16">})</td>
</tr>
<tr>
<td data-line-number="17" id="file-ajax-content-type-jsp-L17"> </td>
<td id="file-ajax-content-type-jsp-LC17">});</td>
</tr>
<tr>
<td data-line-number="18" id="file-ajax-content-type-jsp-L18"> </td>
<td id="file-ajax-content-type-jsp-LC18">});</td>
</tr>
<tr>
<td data-line-number="19" id="file-ajax-content-type-jsp-L19"> </td>
<td id="file-ajax-content-type-jsp-LC19"></script></td>
</tr>
</tbody>
</table>
<p>
답변 1개
해당 사이트를 보면은 외부이미지를 퍼가는 것을 막기 위해 서버단에서 막은 것을 알수 있습니다.
다른 도메인 사이트가 있다면 해당 사이트 도메인의 이미지로 <img src="해당 사이트 도메인 이미지경로" > 해서 테스트 해 보세요. ( 할때는 ctrl+새로고침 해서 브라우저 캐시를 삭제합니다. )
그러면 이미지 엑박이 뜨는 것을 확인 할수 있습니다.
제가 볼때는 서버단에서 위에서 얘기한 이미지주소 허용하는 것에 뭔가를 잘못 설정한걸로 보입니다.
그것을 해제하고 다시 테스트 해 보세요. ( 항상 테스트 할때는 브라우저에서 ctrl+새로고침 )
그렇게 테스트하다 보면은 무엇이 원인인지 판단할수 있습니다.
이미지 안 뜨는 것을 뜬금없이 엉뚱한 ajax 얘기를 왜 하는지 모르겠군요.
그 방법은 영 아닌것 같으니 시도하지 마세요.
답변에 대한 댓글 4개
광깔님이
가령 thisgun.iwinv.net 이라는 다른 사이트를 가지고 있다면
그 thisgun.iwinv.net 이라는 사이트 파일에
<img src="http://stockmk.iwinv.net/gn/theme/stockmk/img/sec03-icon03.png" >
이렇게 해 보세요.
제가 직접 해 봤습니다만
http://thisgun.iwinv.net/test.html
ctrl+새로고침 하면 엑박이 뜹니다.
외부이미지 방지하는것에 무언가 잘못 설정한 것이 있으니 그것을 풀어보라는 얘기입니다.
호스팅 비용이 싸다보니 사용자에게 이런 문제를 알려주지도 않고 운영하는군요.
웹 루트에 .htaccess 파일이 없다면 만들어서
아래 코드를 넣어서 외부이미지를 허용해 보세요.
<Files ~ "\.(jpg|jpeg|png|gif|bmp)$">
allow from all
</Files>
제가 개발 쪽은 무지해서 끙끙 거렸는데 정말 감사합니다 ㅠㅠㅠㅠㅠㅠ
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
호스팅 주소로 접속을 하면 잘 나오는데 ..
한글도메인으로만 접속을 하면 엣지에서 이미지가 안 나오더라구요..
개발자 커뮤니티 쪽에 글을 남겨보니 아작스 통신 문제라고들 하셔서 이렇게 글을 남겼던 부분입니다..
호스팅 주소 http://stockmk.iwinv.net/gn/
한글 도메인 주소 http://한국경제.com/
이미지 경로는
<img src="<?php echo G5_THEME_IMG_URL ?>/down-arrow.svg" alt="">
이렇게 적용했구요 ..