Google Adsense Side (160x600)



파이어폭스11...이거 버그인가요?

회사에서 사이트 리뉴얼을 하는데, 이런저런 사정으로 Ajax를 써서 이런저런 일을 하게끔 만들어버렸어요.
근데, 느닷없이 파폭11 업그레이드후 파폭11에서'만' 로그인 등등이 다 안되는 것입니다.

추적 결과는...


이건...
파폭의 버그 같다는 느낌이 많이 드는데...

$.post(주소, {파라미터들}, function(data) { 처리; });

서버는 json을 반환하게 되어 있어서, 저 data는 json array가 되어야 맞고,
분명 파이어버그 등에서 보면 JSON으로 인식이 되고, response content type 역시 application/json 이고 그런데...
파폭 이놈은 이걸 그냥 string이라고 꿋꿋하게 주장하네요.
 
get은 정상동작하지만, post때만 그러는 것 같습니다.

...
결국, Javascript 최강, 최흉의 함수로 불리는 eval님을 소환해서 막아뒀는데...
갑자기 이러니 참 그렇네요...

이런식으로 막았죠.

function(data) {

    if(typeof data == 'string') // FireFox11 혼자 이상함. 
         eval("data = " + data); 

 // 생략...

}

댓글을 보고 추가합니다.
아무래도 eval이 너무나 초월적 기능이라 위험할 수 있다는 지적에 따라,
data = $.parseJSON(data);
로 수정했습니다.




덧글

  • 천하귀남 2012/03/28 12:47 #

    참 크롬, 사파리, 파폭중에 파폭이 제일 징그럽습니다. ^^;
  • 오오 2012/03/28 13:32 #

    처음에는...
    IE만 그럴 줄 알았는데...--;
  • 엘레시엘 2012/03/28 14:05 #

    eval은 아무래도 위험하니 $.parseJSON이나 $.evalJSON 같은걸 쓰심이^^;;
  • 오오 2012/03/28 14:53 #

    생각해 보니 그렇네요. 감사합니다. $.parseJSON 을 사용하기로 했습니다.
※ 로그인 사용자만 덧글을 남길 수 있습니다.