“页面正在卸载”错误

时间:2017-10-13 08:56:39

标签: javascript node.js reactjs routing

我正在使用NodeJS-ReactJS Isomorphic应用程序,当我点击Link时,我收到错误

Uncaught (in promise) Error: Request has been terminated Possible causes: the network is offline, Origin is not allowed by Access-Control-Allow-Origin, the page is being unloaded, etc.

我听说过前两个原因(离线和CORS)。 the page is being unloaded错误是什么意思?它可能导致浏览器无需导航。

screenshot

3 个答案:

答案 0 :(得分:2)

您的错误是

Uncaught (in promise) Error: Request has been terminated

当promise中的请求在解析或拒绝之前终止时,会导致此错误。如果(Possible causes

,就会发生这种情况
  1. the network is offline:网络出现故障,与处理请求的网址的连接丢失。
  2. Origin is not allowed by Access-Control-Allow-Origin:由于缺少正确的CORS标头,请求被拒绝。
  3. the page is being unloaded:在请求完成之前,关闭发出请求的页面。
  4. 由于上述原因,与您的案例相关的最可能原因可能是1或2,因为您在单击Link导航到组件时收到错误。请使用Link检查正在加载的新组件发出的请求。

    修改 如果您查看错误消息屏幕截图,它会清楚地指出错误发生在第no行。在node_modules / superagent / lib / client.js.Request.crossDomainError中的PromiseRequest中的app.js的73194。因此,您的错误原因是CORS错误,如上面的第2条所述。

答案 1 :(得分:0)

'因为Link组件正在使用Location.push进行重定向,而Location.push方法无法重定向到其他域。

所以我的解决方案是:

  1. 使用window.open('http://your.new.domain.com/index', '_self')
  2. 使用<a href="http://your.new.domain.com/index">

答案 2 :(得分:0)

您似乎未在节点服务器中启用了cors。 建议步骤:

  • npm install cors

  • 在app.js(节点服务器)

  • 中使用它

var cors = require('cors');    
var app = express();
app.use(cors()); //Enable CORS