2017-12-14 23 views
0

는 I가 각 4 어플은 이제 오류가 발생 iOS11.1에 전화를 업그레이드 iOS11.1iOS11 코르도바 각도 4 랩 깨는에서 SecurityError : history.replaceState()

전에 완벽하게 잘 작동했다 코르도바로 포장 한 외모에서 <base href="./">

를 다음과 같이 그것이 문자열이 URL을 비교하지 내가 샌드 박스 영역의 외부에 액세스하려고 생각하고 블록을

이다의
Error: Uncaught (in promise): SecurityError (DOM Exception 18): Blocked attempt to use history.replaceState() to change session history URL from file:///var/containers/Bundle/Application/CE4A6135-633D-49B9-9A1D-28CBFF5AB832/MyAppName.app/www/index.html to file:///var/containers/Bundle/Application/CE4A6135-633D-49B9-9A1D-28CBFF5AB832/MyAppName.app/www/. Paths and fragments must match for a sandboxed document. [email protected][native code] [email protected]:///var/containers/Bundle/Application/CE4A6135-633D-49B9-9A1D-28CBFF5AB832/Real%20Yeti.app/www/

내 기본 태그입니다

그러나 기본 href를 지정해야합니다. 그렇지 않으면 모든 링크 등이 (앱 폴더 대신) 휴대 전화의 루트를 기반으로하고 중단됩니다.

누구든지 해결 방법을 알고 있습니까? 내가 제대로 웹킷의 소스 코드 (source for that error), 그것은 당신이 파일의 URI에 일을 이해한다면

+0

iOS에 대해서는 전혀 모르지만 Android에서는 기본 태그 인 Eliseo

답변

0

HashLocationStrategy를 사용하여이 문제를 해결했습니다.
오류를 유발하지 않는/# /를 통해 URL을로드합니다. 내가 변경 무엇

했다 : 앱 routing.module.ts에서 #

<base href="#"> 

에 index.html을 설정 기본 href에서

추가 useHash 옵션 응용 프로그램에서

RouterModule.forRoot(routes, { useHash: true }), 

.module.ts는 RoutingModule이 가져 오기 배열의 마지막 항목인지 확인했습니다.

imports: [ 
    ..., 
    AppRoutingModule, 
], 
0

(문제는 iOS11.1.1, iOS11.2에 존재). 내가 찾은 유일한 해결책은 로컬 서버를 사용하여 URL이 바뀌는 것을 허용하는 에서 실행하는 것입니다.