일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- ChangeDetectorRef
- aab 배포
- getElementsByClassName
- zsh
- NVM
- typescript
- angular
- Sentry
- JavaScript
- sealize
- VSCode
- hashchange
- 테두리굵기
- Visual Studio Code
- Ionic
- angular5
- ion-range
- 자바스크립개념
- error
- change detection
- border-width
- oh-my-zsh
- Git
- IONIC3
- rxjs
- fromEvent
- 이미지바꾸기
- code .
- 변화감지
- php
- Today
- Total
hsunny study blog
popup창에서 window.opener로 값이 전송되지 않는 문제 본문
발생상황
팝업형 본인인증 방식을 사용하는 페이지에서 발생한 문제.
부모창(opener)의 form을 찾아 form 안에 있는 name이 일치하는 곳에 value를 보내주고 팝업이 self.close() 해야하는데 창도 닫기지 않고 아무런 에러 콘솔도 남지 않았다.
문제해결
1. opener 에서 값을 전송해주려는 곳에 form과 하위 요소들이 잘 위치하고 있는지 확인한다.
- 개발자모드(f12)로 확인하니 <form name="form"> </form> 안에 값들이 비어있었다. 코드상으론 문제가 없어보였지만, 여러 include 된 태그들을 확인하니 시작과 끝이 맞지 않아 form 내부가 비어있었다.
2. cross domain 확인
1의 문제를 해결하고 실행해보니 콘솔창에 에러 콘솔이 남았다. 에러가 난 위치는 opener에 value를 주기 시작하는 첫번째 문장이었고, 발생한 에러는 아래와 같다.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
chrome : Uncaught DOMException: Blocked a frame with origin "{도메인명}" from accessing a cross-origin frame.
IE : 사용권한이 없습니다.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- 보안상의 이유로, 브라우저들은 스크립트 내에서 초기화되는 cross-origin HTTP 요청을 제한한다.
따라서 통신을 위해 도메인명이 일치해야 한다. 또한 http -> https의 전송은 불가하다.
참고사이트:
http://noritersand.tistory.com/281
https://developer.mozilla.org/ko/docs/Web/HTTP/Access_control_CORS
'programming > ERROR' 카테고리의 다른 글
Uncaught SyntaxError: Unexpected end of input (0) | 2020.08.30 |
---|---|
Mixed Content: The page at '%' was loaded over HTTPs, but requested an insecure image '%'. (0) | 2018.06.18 |
414 Request-URI Too Large (0) | 2018.06.18 |
cannot read property 'replace' of undefined (0) | 2017.07.22 |
[iOS]This action could not be completed. Try again. (0) | 2017.06.25 |