카테고리 없음

Access-Control-Allow-Origin은 Origin null을 허용하지 않습니다.

기록만이살길 2021. 2. 22. 16:11
반응형

Access-Control-Allow-Origin은 Origin null을 허용하지 않습니다.

1. 질문(문제점):

다음과 같은 코드로 weather.xsl이라는 html 출력을 만들기 위해 작은 xslt 파일을 만들었습니다.

<!-- DWXMLSource="http://weather.yahooapis.com/forecastrss?w=38325&u=c" -->
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
exclude-result-prefixes="yweather"
xmlns:yweather="http://xml.weather.yahoo.com/ns/rss/1.0" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>

<xsl:template match="/">
    <img src="{/*/*/item/yweather:condition/@text}.jpg"/>
</xsl:template>
</xsl:stylesheet>

다음과 같이 jQuery를 사용하여 수행하려는 html 파일의 div에 html 출력을로드하고 싶습니다.

<div id="result">
<script type="text/javascript">
$('#result').load('weather.xsl');
</script>
</div>

하지만 다음 오류가 발생합니다. Origin null은 Access-Control-Allow-Origin에서 허용되지 않습니다.

xslt에 헤더를 추가하는 방법에 대해 읽었지만 어떻게해야하는지 잘 모르겠으므로 어떤 도움을 주시면 감사하겠습니다. HTML 출력에로드 할 수없는 경우 다른 방법에 대한 조언 그렇게하는 것이 좋을 것입니다.

2. 해결방안:

Origin null은 로컬 파일 시스템이므로 URL을 load통해 호출 을 수행하는 HTML 페이지를로드하고 있음을 나타냅니다 file:///(예 : 로컬 파일 브라우저에서 두 번 클릭하는 등). 다른 브라우저는 동일한 원본 정책 을 로컬 파일 에 적용하기 위해 다른 접근 방식을 사용 합니다.

제 생각에는 Chrome을 사용하여 이것을보고 계십니다. SOP를 로컬 파일에 적용하는 Chrome의 규칙은 매우 엄격하며 문서와 동일한 디렉토리에서 파일을로드하는 것도 허용하지 않습니다. Opera도 마찬가지입니다. Firefox와 같은 일부 다른 브라우저는 로컬 파일에 대한 제한된 액세스를 허용합니다. 그러나 기본적으로 로컬 리소스와 함께 ajax를 사용하는 것은 브라우저 간 작동하지 않습니다.

로컬 파일을 사용하는 대신 실제로 웹에 배포 할 것을 로컬에서 테스트하는 경우 간단한 웹 서버를 설치하고 http://대신 URL을 통해 테스트 합니다. 이는 훨씬 더 정확한 보안 그림을 제공합니다.

65872952
반응형