2013-07-26 17 views
0

좋아, jquery, php, .htaccess를 사용하여 내 자체 CMS를 코딩했습니다. 커튼 뒤의 index.php 및 HTML5 기록 API로 리디렉션됩니다. 이제 내가 본 이상한 벌레를 만났어.HTML5 기록 API로 인해 일부 기기에서 돔 예외가 발생합니다.

내 컴퓨터와 내 안드로이드 전화 및 대부분의 장치에서 모든 것이 완벽하게 작동합니다.

그러나 내 친구 인 컴퓨터와 iPhone 중 어떤 브라우저에서든 자신이 사용하는 똑같은 최신 크롬 인 Dom 예외 18이 (자바 스크립트 콘솔에서) 발생하고 모든 아약스 코드 실행이 중단됩니다. CMS가 깨졌습니다. 이 행에

오류 지점 :

History.replaceState({location:href}, "", href); 

내 브라우저에서 완벽하게 작동 그냥 일반 history.js 문. 사실 정상적인 html5 기록 API를 사용했지만 도움이되는지보기 위해 history.js 구현으로 변경했습니다. 초기 replaceState를 제거하면 링크를 클릭 할 때 오류가 발생하므로 Dom 오류를 일으키는 첫 번째 기록 푸시 이벤트입니다.

Dom Exception 18을 검색하려고했지만 모든 답변이 특정 패키지 또는 다른 호스트의 이미지 조작과 관련이있는 것 같습니다.

www.roopesalminenjakoirat.fi에서 효과가 있는지 직접 확인할 수 있습니다. 돔 예외 18이 발생하면 즉시 검사원에게 나타나야합니다. 로그 아웃 할 때 아약스를 사용하지 않기 때문에 페이지가 손상되지 않지만 오류가 표시되면 신고 해주십시오.

도와주세요!

+0

관련 항목 : http://stackoverflow.com/questions/2704929/uncaught-error-security-err-dom-exception-18-when-i-try-to-set-a-cookie – Raptor

+0

Eh, woah, 지금 그것은 나의 브라우저에도 역시 일어났다. 그러나이 페이지의 링크에서 사이트를 열어야 만 가능합니다. 주소를 수동으로 입력하거나 페이지를 새로 고치면 발생하지 않습니다 ... O – Qha

+0

보안상의 문제입니다. 왜 History.replaceState()를 사용하고 싶습니까? – Raptor

답변

0

발견! 분명히 그것은 "www"가 있거나없는 기본 요소와 관련이 있습니다. 현재 나는 단지 <base href="http://roopesalminenjakoirat.fi" />을 가지고 있기 때문에, 나는 보통 www를 입력하지 않기 때문에 문제가 발생하지 않았지만 그가 www를 쓰기 때문에 내 친구에게 일어났습니다!

그래서 기본 요소 인 www-part를 사용자가 입력했는지 여부와 대조해야합니다. 그렇지 않으면 replaceState가 보안 오류를 발생시킵니다!