【问题标题】:react:Uncaught DOMException: Failed to execute 'pushState' on 'History': A history state object with URL反应:未捕获的 DOMException:无法在“历史”上执行“pushState”:具有 URL 的历史状态对象
【发布时间】:2017-06-07 01:56:18
【问题描述】:

我有一个react项目,我现在通过webstorm打开没问题,但是直接打开index.html里面的文件夹,主页面可以出来,但是点击会报错,点击我用reactor的链接。 麻烦谁能帮我解决,谢谢!

错误信息:

未捕获的 DOMException:无法在“历史”上执行“pushState”:A 带有 URL 的历史状态对象 'file:///Users/qinchen/Desktop/change/dist/integralpage' 不能 在原始“null”和 URL 的文档中创建 'file:///Users/qinchen/Desktop/change/dist/index.html'。 在finishTransition (file:///Users/qinchen/Desktop/change/dist/bundle.js:25897:24) 在 file:///Users/qinchen/Desktop/change/dist/bundle.js:13142:13 在 file:///Users/qinchen/Desktop/change/dist/bundle.js:13118:9 在下一个(文件:///Users/qinchen/Desktop/change/dist/bundle.js:25765:7) 在 Object.loopAsync (file:///Users/qinchen/Desktop/change/dist/bundle.js:25769:3) 在confirmTransitionTo (file:///Users/qinchen/Desktop/change/dist/bundle.js:13104:17) 在 transitionTo (file:///Users/qinchen/Desktop/change/dist/bundle.js:13130:5) 在 Object.push (file:///Users/qinchen/Desktop/change/dist/bundle.js:13153:5) 在 Object.push (file:///Users/qinchen/Desktop/change/dist/bundle.js:13395:15) 在 Object.push (file:///Users/qinchen/Desktop/change/dist/bundle.js:6535:15)

【问题讨论】:

  • 你能解释一下你在哪里得到这个异常等等,猜它是在 webstorm 中

标签: reactjs react-router


【解决方案1】:

出于安全原因,在加载本地文件(浏览器中的 file:/// URL)时,您不能使用 pushState。相反,您有两种选择:

  1. 改为使用哈希历史记录。这将在本地文件上正常工作。
  2. 启动一个简单的 Web 服务器来提供您的文件。如果您不想构建小型服务器应用程序,here is a list of simple ones。您可以选择,他们都会在您的浏览器中为您提供一个支持浏览器历史记录的 http:// URL。

【讨论】:

  • 我现在的项目必须直接打开index.html使用,也就是说我唯一的办法就是用一个Hash history来代替?
  • 引用 reactor index.html 是这样写的: render( , document.getElementById('app') );
猜你喜欢
  • 2020-11-16
  • 2018-03-06
  • 1970-01-01
  • 1970-01-01
  • 2016-02-04
  • 2019-09-16
  • 1970-01-01
  • 2018-05-06
  • 1970-01-01
相关资源
最近更新 更多