Необработанное отклонение (SecurityError): операция небезопасна. В новом проекте create-react-app
Я создал новый проект с приложением create-response-app, затем запустил npm start, и это появилось. https://imgur.com/a/3By9NCr
Использование FF 69.0.3
6 ответов
Эта проблема, похоже, возникает только в Firefox. Edge работал нормально.
После создания проекта в index.js
менять:
serviceWorker.register();
//serviceWorker.unregister();
Все еще пытаюсь понять, чья это вина, но это должно вас подтолкнуть.
Похоже, проблема существует только в Firefox. Любой, кто все еще сталкивается с этой ошибкой, может попробовать отключить параметр Удалить файлы cookie и данные сайта, когда Firefox закрыт в настройках конфиденциальности и безопасности. Или попробуйте обернуть
navigator.serviceWorker
использования внутри try / catch. В моем случае
if ("serviceWorker" in navigator) {
navigator.serviceWorker.ready
.then(registration => {
registration.unregister();
})
.catch(error => console.log("ServiceWorker Warning: ", error));
}
Много ответов здесь на самом деле решить эту проблему, но самый простой способ, который я нашел, чтобы добавить НПЙ пакет служит для ваших зависимостей.
yarn add serve
или npm i serve
а затем замените начальный скрипт следующим:
"scripts": {
"start": "serve -s build",
}
Это на самом деле прямо из создания реагирующего-приложения Docs
У меня тоже была эта ошибка. Удалось прояснить это, удалив файл create-response-app serviceWorker.js
Для меня это был неверный URL-адрес при вызовеroute()
функция в PreactJS.
По сути, я добавил слишком много косой черты при интеграцииprocess.env.PUBLIC_PATH
переменную в мои ссылки следующим образом:
export function Example(props: {}) {
const callback = useCallback((e: JSX.TargetedEvent<HTMLButtonElement>) => {
route(`${process.env.PUBLIC_PATH}/my/path`)
// ^
// That slash is too much
}, [])
return <button onClick={callback}>Click me</button>
}
После нажатия кнопки URL-адрес в строке адреса Chrome выглядел примерно так:
https://localhost/my-app//my/path
^^
Here is the forbidden double slash
Интересно, что мне об этом сообщил только Firefox, а Chrome с радостью отобразил страницу и проигнорировал двойную косую черту.
Решением было просто удалить ненужную косую черту, посколькуenv.process.PUBLIC_PATH
всегда должен заканчиваться косой чертой:
route(`${process.env.PUBLIC_PATH}my/path`)
// ^^
// No extra slash fixed it!