我正在使用Angular2 Beta 14并且调用带有“dot”的URL会导致从lite服务器发现404错误,即2.2.0。
这是我正在呼叫的网址:
http://localhost:3000/confirmuser/token/eyJhbGciOiJIUzI1NiJ9.eyJ1c2VySWQiOjYsInVzZXJOYW1lIjoiYXNkZmFzQGNlZC5saSJ9.PMzNWp8mbUKbSAiOqhOqjhZUYNejXY3pIQueBkc8_2E
app.component.ts中的路由器路径如下所示:
{path: '/confirmuser/token/:token', name: 'ConfirmUser', component: ConfirmUserComponent}
Chrome控制台显示:
Failed to load resource: the server responded with a status of 404 (Not Found)
Ant Lite服务器:
[1] 16.04.13 15:57:13 404 GET /confirmuser/token/eyJhbGciOiJIUzI1NiJ9.eyJ1c2VySWQiOjYsInVzZXJOYW1lIjoiYXNkZmFzQGNlZC5saSJ9.PMzNWp8mbUKbSAiOqhOqjhZUYNejXY3pIQueBkc8_2E
当我在没有“点”的情况下调用网址时,页面会正确加载。
我的目标是确认用户注册。他收到一封包含他必须确认的URL的电子邮件。在这个(和其他情况下)使用JWT是我一直在使用的习惯。
现在我怀疑这是一个Angular问题,我相信这是一个简单的服务器问题。
有人有这方面的经历吗? 感谢
答案 0 :(得分:0)
我找到了适合此问题的解决方法。 基本上我已经摆脱了路径参数":token"并用查询参数替换它
在app.component.ts中,新路径现在如下所示:
{path: '/confirmuser', name: 'ConfirmUser', component: ConfirmUserComponent}
这样的网址:
http://localhost:3000/confirmuser?token=eyJhbGciOiJIUzI1NiJ9.eyJ1c2VySWQiOjYsInVzZXJOYW1lIjoiYXNkZmFzQGNlZC5saSJ9.PMzNWp8mbUKbSAiOqhOqjhZUYNejXY3pIQueBkc8_2E
在处理此请求的组件中,我可以像以前一样继续调用route params。所以没有什么可以改变的:
constructor(params: RouteParams){
this.token = params.get('token')
...
答案 1 :(得分:0)
此问题已在https://stackoverflow.com/a/36283859/1465640@
中得到解答但是可以用点汇总,除非你在lite-server config 上做一些工作,否则点在URL中不起作用。
答案 2 :(得分:0)
如果您使用的是webpack,则需要更改配置以使其正常工作。 请在webpack dev服务器配置文件中进行更改
historyApiFallback: {
disableDotRule: true
},