Javascript AngularJS HTML5模式重新加载页面

Javascript AngularJS HTML5模式重新加载页面,javascript,node.js,angularjs,express,Javascript,Node.js,Angularjs,Express,我有两个不同的申请: AngularJS客户端正在处理 NodeJS API服务器正在处理 NodeJSAPI服务器只向客户端提供json数据(不提供任何html页面)。因此,为了向客户机提供与服务器通信的能力,我在API服务器上启用了CORS技术 app.use(function(req, res, next) { res.header("Access-Control-Allow-Origin", "*"); res.header("Access-Control-Allow-Heade

我有两个不同的申请:

  • AngularJS客户端正在处理
  • NodeJS API服务器正在处理
  • NodeJSAPI服务器只向客户端提供json数据(不提供任何html页面)。因此,为了向客户机提供与服务器通信的能力,我在API服务器上启用了CORS技术

    app.use(function(req, res, next) {
      res.header("Access-Control-Allow-Origin", "*");
      res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
      res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS');
      next();
    });
    
    我还想使用没有#符号的干净URL,所以我在AngularJS应用程序中启用HTML5模式

    function config($stateProvider, $urlRouterProvider, $locationProvider) {
        $locationProvider.html5Mode(true);
        $urlRouterProvider.otherwise('/login');
        ...
    
    ---index.html

    <!doctype html>
    <html lang="en" ng-app="app">
    <head>
      <base href="/">
      <title>APP</title>
      <link rel="stylesheet" href="css/normalize.css">
      <link rel="stylesheet" href="css/style.css">
      <link rel="stylesheet" href="css/fontello.css">
    </head>
    <body>
    
      <div ui-view="content"></div>
    
      <script src="dist/app.js" type="text/javascript"></script>
    
    </body>
    </html>
    
    但我的服务器上没有任何“视图”

    在这种情况下,你能给我什么?你猜对了

    您需要告诉端口8080上的服务器为所有请求(现有静态文件除外)提供index.html文件


    然后,UI路由器会将您路由到angular应用程序的相关页面客户端,或者如果键入的url无效,则会将用户重定向到另一个url。

    谢谢,我解决了这个问题。但一个新的趋势出现了。现在,若我重新加载页面,我会丢失cookie和会话。你知道什么地方会出错吗?你应该问一个新问题,并向我们展示一些代码:)。告诉我们你是如何根据你的API进行身份验证的对不起,是我的错。如果你对这个问题感兴趣,这里是链接。非常感谢。
    app.all('/*', function(req, res, next) {
      res.sendFile('index.html', { root: __dirname });
    });