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
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 });
});