2016-08-03 4 views
0

안녕하세요, http 이상의 로컬 파일과 액세스하는 webapp에서 작업하려고합니다. 페이지 자체가 로컬로로드되지만 웹 서버에 대한 ajax 호출이 이루어집니다.동일 원본 정책을 위반하지 않고 로컬 파일을 가져 와서 웹에서 데이터를 가져 옵니까?

동일한 출처 정책을 위반하지 않고이를 수행 할 수있는 방법이 있습니까?

동일한 출처 정책을 사용하지 않도록 설정하는 방법은 many many입니다.하지만 매번 명령 줄 플래그를 전달할 필요가 없기 때문에 합법적 인 방법을 찾고 있습니다.

또한, 크롬에 다소 성가신 팝업 메시지가 그 플래그가 전달 될 때마다 나타납니다.

이 있습니다이 주위에 방법은?

답변

0

웹 서버를 제어합니까? 그렇다면 CORS 헤더를 추가하고 로컬 http 서버를 실행하는 조합으로 가능합니다.

아시다시피, CORS doesn't support local file:// access. 그러나 간단한 http 서버를 로컬로 실행하면 HTTP를 통해 매우 동일한 파일을 제공 할 수 있습니다. CORS는 localhost로부터 cross-origin HTTP 요청을 기꺼이 지원할 것입니다.

먼저 로컬 파일을 어떻게 든 제공해야합니다. 이 목적을 위해 간단히 http 웹 서버가 많이 있습니다. 그러한 방법 중 하나가 Python의 SimpleHTTPServer입니다. 파이썬이 설치되어있는 경우, 당신은 실행하여 현재 디렉토리를 제공하는 로컬 웹 서버를 시작할 수 있습니다

python -m SimpleHTTPServer 8080 

둘째, 당신은 목록에 http://localhost:8080을 추가해야 액세스 제어 - 허용 - 원산지의 리모컨 헤더를 웹 서버.

참고 : 프로덕션 서버의 허용 된 출처 목록에 localhost를 추가하는 것은 좋지 않은 아이디어 일 수 있습니다. 서버는 신뢰할 수있는 웹 페이지 또는 실제로 공개 된 데이터에 대해서만 브라우저의 동일 출처 정책을 무시해야합니다.

관련 문제