【问题标题】:React, NodeJS, Express and Heroku. HTTPS inconsistency errorReact、NodeJS、Express 和 Heroku。 HTTPS 不一致错误
【发布时间】:2018-05-11 09:11:58
【问题描述】:

由于某种原因,当我部署到 Heroku 时,我的快速路线无法正常工作。只有当我使用 HTTP 而不是 HTTPS 来访问应用程序时,我才能使路由正常工作。但是,我可以使用 Internet Explorer 和 Microsoft Edge 获取路由以在 HTTPS 上工作,但不能使用 Google Chrome 和 Mozilla Firefox。这看起来真的很矛盾,我已经为此奋斗了 5 个小时,要么是 React、Express、Node 要么 Heroku 有问题,无论哪种方式,我都感觉要重新开始在 .NET 中编码。

我们将不胜感激。

以下是相关链接:

请参阅下面的 Heroku 部署: http://youvote-fcc.herokuapp.com https://youvote-fcc.herokuapp.com

注销服务器端路由会清除所有活动会话并重定向用户。但是在 Chrome 和 Firefox 上,使用 HTTPS 时不会发生这种情况,而是调用 app.get('*') 路由,然后由 React Router 处理用户请求。我检查了我的日志,实际上已经到达了注销路由,但是一旦使用 HTTPS,来自快速服务器的操作就没有传递到客户端。路线的顺序不应允许这种情况发生。另外,它只发生在使用这些浏览器的 HTTPS 上,所以很奇怪。

【问题讨论】:

  • 你能发布一些代码吗?发布一些错误?向我们展示您的快速路线?除了“它不起作用”之外,我们真的没有什么可做的了:P
  • 我明白了。然而,这是一个相当大的项目。所以我会发布一些链接。
  • 我已经用相关链接和一些进一步的信息编辑了这个问题。希望这一切顺利。

标签: node.js reactjs express heroku https


【解决方案1】:

如果你使用HTTPS,你应该保证你的源来自HTTPS~可以先检查一下,或者在你的浏览器日志中有任何日志(chrom,firefox)?

【讨论】:

  • 您好,在 Firefox 或 Chrome 上看不到任何浏览器日志。此外,我所有的资源都在同一个部署/服务器上。
【解决方案2】:

我发现了问题。它与使用 React-Create-App 时 index.js 文件中的 Service Worker 注册有关。我更改了 import 语句以获取 { unregister } 方法,然后删除了 registerService 方法并在同一位置调用了 unregister。这就是我的索引文件现在的样子。

import React from 'react';
import ReactDOM from 'react-dom';
import { Provider } from 'react-redux';
import { createStore, applyMiddleware } from 'redux';
import { unregister } from './registerServiceWorker';
import reduxThunk from 'redux-thunk';

import App from './components/App';
import reducers from './reducers';

const store = createStore(reducers, {}, applyMiddleware(reduxThunk));

ReactDOM.render(
  <Provider store={store}>
    <App />
  </Provider>,
  document.getElementById('root')
);
//Un-register Service Worker
unregister();

【讨论】:

  • 您能解释一下为什么会这样吗?我在使用 HTTP 和 HTTPS 时遇到了同样的问题,这解决了它。
猜你喜欢
  • 2020-02-28
  • 2014-08-29
  • 2019-11-09
  • 1970-01-01
  • 1970-01-01
  • 2019-04-09
  • 1970-01-01
  • 2018-12-21
  • 1970-01-01
相关资源
最近更新 更多