我正在使用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
错误是什么意思?它可能导致浏览器无需导航。
答案 0 :(得分:2)
您的错误是
Uncaught (in promise) Error: Request has been terminated
当promise中的请求在解析或拒绝之前终止时,会导致此错误。如果(Possible causes
)
the network is offline
:网络出现故障,与处理请求的网址的连接丢失。 Origin is not allowed by Access-Control-Allow-Origin
:由于缺少正确的CORS标头,请求被拒绝。the page is being unloaded
:在请求完成之前,关闭发出请求的页面。由于上述原因,与您的案例相关的最可能原因可能是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
方法无法重定向到其他域。
所以我的解决方案是:
window.open('http://your.new.domain.com/index', '_self')
<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