Translate

2016년 1월 29일 금요일

[AngularJS] Cannot set property charset of # which has only a getter 에러




사양: 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)


AngularJS 에서 사용하는 document 가 Wrapping 되어있는 객체는 charset 속석에 getter 가 없어서 값을 바꿀 수 없다고 한다.







찾아보니 'accept-charset' 라는 표준 속성이 있었다.


<form method="POST" accept-charset="euc-kr">
<input type="hidden" name="" value="" />
</form>



위의 방법으로 폼을 전송하니 정상적으로 한글이 깨지지 않고 전송되는 것을 확인했다.


댓글 없음 :

댓글 쓰기