Не удалось выполнить replaceState для History - PullRequest
0 голосов
/ 12 мая 2018

Когда Google индексирует мое угловое веб-приложение. Он не может видеть страницы и в консоли у меня есть эта ошибка:

SecurityError: Не удалось выполнить replaceState для «History»: объект состояния истории с URL-адресом «https://MYDOMAIN/universe/' не может быть создан в документе с источником» https://webcache.googleusercontent.com' и URL-адресом https://webcache.googleusercontent.com/search?q=cache:YlVK5uwbqWcJ:https://MYDOMAIN>/universe+&cd=2&hl=fr&ct=clnk&gl=fr'.

Но я не понимаю ошибки. Значит ли это, что я должен разрешить перекрестное происхождение для webcache.googleusercontent?

В настоящее время я использую Angular Universal и Nginx в качестве обратного прокси.

1 Ответ

0 голосов
/ 13 мая 2018

Если вы хотите, чтобы ваша история работала при доступе к вашей стороне из кеша Google, вам нужно использовать относительный URL при вызове pushState.AFAIK, нет настройки перекрестного источника, которая изменит это.

Новый URL должен иметь то же происхождение, что и текущий URL;в противном случае pushState () сгенерирует исключение

https://developer.mozilla.org/en-US/docs/Web/API/History_API

Вы можете использовать стратегию hashLocation вместо стратегии определения местоположения по умолчанию (https://angular.io/guide/router#appendix-locationstrategy-and-browser-url-styles). This должен решить проблему

@NgModule({
  imports: [
  BrowserModule,
  RouterModule.forRoot(routes, { useHash: true }) 
],
...