CORS 설정해도 IE에서 크로스 도메인간 요청 불가 원인.

[CORS 설정에도 IE9 요청 불가 콘솔 로그.]

JSONP를 사용하지 않아도 크로스 도메인간 데이터 송 수신을 가능하게 해주는 스펙이 CORS입니다.
하지만 CORS (Cross-Origin Resource Sharing) 는 XHR Level2에서 지원하는 스펙이기 때문에,
최신 파폭, 크롬, IE 10이상은 문제 없이 지원하지만, IE하위 버전에선 동작하지 않습니다.
제한적으로 IE에만 있는 XDomainRequest을 사용하는 방법을 소개하는 글도 있지만,
이 또한 IE 8, 9에만 제한되며, 그 이하 버전도 만족하려면 JSONP를 요청 응답을 사용해야 합니다.

관련글은 아래와 같습니다.

Summary of XHR2 CORS (or rather lack of) in Internet Explorer

  • IE 6, 7, 8, and 9 do not support XHR2 CORS. It is not possible to make generalized cross-domain requests in these browsers.
  • IE 8, 9 support an ActiveX control called XDomainRequest that only allows limited cross-domain requests compared to XHR2 CORS.
  • IE 10 supports XHR2 CORS.

[관련링크]
– https://github.com/WardCunningham/Smallest-Federated-Wiki/issues/365

자바스크립트에서 replace를 replaceAll 처럼 사용하기

자바스크립트에서 replaceAll 은 없다.
정규식을 이용하여 대상 스트링에서 모든 부분을 수정해 줄 수 있다.

[replace 이용]

// #를 공백으로 변경한다.
str.replace("#","");

하지만 첫번째 # 만 공백으로 변경되고 나머지는 변경이 되지 않는다.

 

[정규식 이용해서 gi 로 감싸기]

// 정규식을 사용하여 gi 옵션을 붙이면 replaceAll 과 같은 결과를 볼 수 있다.
str.replace(/#/gi, "");

 

[정규식의 gi 설명]
* g : 발생할 모든 pattern에 대한 전역 검색
* i : 대/소문자 구분 안함
* m: 여러 줄 검색 (참고)

 

[출처]
http://blog.naver.com/PostView.nhn?blogId=sjpotato&logNo=40150731304&redirect=Dlog&widgetTypeCall=true