테스트 사이트 - 개발 중인 베타 버전입니다

엣지, HTTP403: FORBIDDEN 오류 관련 도움 좀 부탁드립니다..! 채택완료

광깔 5년 전 조회 4,122

그누보드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개

채택된 답변
+20 포인트
thisgun
5년 전

해당 사이트를 보면은 외부이미지를 퍼가는 것을 막기 위해 서버단에서 막은 것을 알수 있습니다.

 

다른 도메인 사이트가 있다면 해당 사이트 도메인의 이미지로 <img src="해당 사이트 도메인 이미지경로" > 해서 테스트 해 보세요. ( 할때는 ctrl+새로고침 해서 브라우저 캐시를 삭제합니다. )

그러면 이미지 엑박이 뜨는 것을 확인 할수 있습니다.

 

제가 볼때는 서버단에서 위에서 얘기한 이미지주소 허용하는 것에 뭔가를 잘못 설정한걸로 보입니다.

그것을  해제하고 다시 테스트 해 보세요. ( 항상 테스트 할때는 브라우저에서 ctrl+새로고침 )

 

그렇게 테스트하다 보면은 무엇이 원인인지 판단할수 있습니다.

 

이미지 안 뜨는 것을 뜬금없이 엉뚱한 ajax 얘기를 왜 하는지 모르겠군요.

그 방법은 영 아닌것 같으니 시도하지 마세요.

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 4개

광깔
5년 전
그누보드로 만든 사이트입니다.
호스팅 주소로 접속을 하면 잘 나오는데 ..
한글도메인으로만 접속을 하면 엣지에서 이미지가 안 나오더라구요..
개발자 커뮤니티 쪽에 글을 남겨보니 아작스 통신 문제라고들 하셔서 이렇게 글을 남겼던 부분입니다..

호스팅 주소 http://stockmk.iwinv.net/gn/
한글 도메인 주소 http://한국경제.com/

이미지 경로는
<img src="<?php echo G5_THEME_IMG_URL ?>/down-arrow.svg" alt="">
이렇게 적용했구요 ..
t
thisgun
5년 전
제말이 어려운가 보군요.

광깔님이

가령 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+새로고침 하면 엑박이 뜹니다.

외부이미지 방지하는것에 무언가 잘못 설정한 것이 있으니 그것을 풀어보라는 얘기입니다.
t
thisgun
5년 전
iwinv.net 호스팅에서 강제로 외부이미지 방지 하는것이 있네요.

호스팅 비용이 싸다보니 사용자에게 이런 문제를 알려주지도 않고 운영하는군요.

웹 루트에 .htaccess 파일이 없다면 만들어서

아래 코드를 넣어서 외부이미지를 허용해 보세요.

<Files ~ "\.(jpg|jpeg|png|gif|bmp)$">
allow from all
</Files>
광깔
5년 전
정말 감사합니다 !!!! 진짜 정말 감사합니다 ㅠㅠㅠ
제가 개발 쪽은 무지해서 끙끙 거렸는데 정말 감사합니다 ㅠㅠㅠㅠㅠㅠ

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인