사양: AngularJS v1.4.7
NicePay 연동 시 메뉴얼에 EUC-KR로 form 을 보내줘야 하니 form 전송 전 아래와 같은 코드를 넣어 EUC-KR 로 전송하라고 되어있다.
document.charset = 'euc-kr';
현재 사용하는 Angular 프로젝트에서 해당 코드를 사용 시 아래와 같이 오류가 발생을 했다.
angular.min.js?vt=1453967000870:114
TypeError: Cannot set property charset of #<Document> which has only a getter
at Object.HttpService.fnPost.success (blablabla.js?vt=1453967000870:37)
at app-service.js?vt=1453967000870:309
at angular.min.js?vt=1453967000870:93
at angular.min.js?vt=1453967000870:126
at m.$eval (angular.min.js?vt=1453967000870:141)
at m.$digest (angular.min.js?vt=1453967000870:138)
at m.scopePrototype.$digest (hint.js:2016)
at m.$apply (angular.min.js?vt=1453967000870:141)
at m.scopePrototype.$apply (hint.js:2079)
at l (angular.min.js?vt=1453967000870:93)
TypeError: Cannot set property charset of #<Document> which has only a getter
at Object.HttpService.fnPost.success (blablabla.js?vt=1453967000870:37)
at app-service.js?vt=1453967000870:309
at angular.min.js?vt=1453967000870:93
at angular.min.js?vt=1453967000870:126
at m.$eval (angular.min.js?vt=1453967000870:141)
at m.$digest (angular.min.js?vt=1453967000870:138)
at m.scopePrototype.$digest (hint.js:2016)
at m.$apply (angular.min.js?vt=1453967000870:141)
at m.scopePrototype.$apply (hint.js:2079)
at l (angular.min.js?vt=1453967000870:93)
AngularJS 에서 사용하는 document 가 Wrapping 되어있는 객체는 charset 속석에 getter 가 없어서 값을 바꿀 수 없다고 한다.
찾아보니 'accept-charset' 라는 표준 속성이 있었다.
<form method="POST" accept-charset="euc-kr"> <input type="hidden" name="" value="" /> </form>
위의 방법으로 폼을 전송하니 정상적으로 한글이 깨지지 않고 전송되는 것을 확인했다.
댓글
댓글 쓰기