2

我正在使用 Angular2 Beta 14 并调用其中带有“点”的 URL 会导致来自 2.2.0 的 lite 服务器的 404 not found 错误。

这是我正在调用的 URL:

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)

蚂蚁精简版服务器:

[1] 16.04.13 15:57:13 404 GET /confirmuser/token/eyJhbGciOiJIUzI1NiJ9.eyJ1c2VySWQiOjYsInVzZXJOYW1lIjoiYXNkZmFzQGNlZC5saSJ9.PMzNWp8mbUKbSAiOqhOqjhZUYNejXY3pIQueBkc8_2E

每当我调用没有“点”的 url 时,页面就会正确加载。

我的目的是确认用户注册。他收到一封电子邮件,其中包含他必须确认的 URL。在这种(和其他情况)中使用 JWT 是我一直在使用的习惯。

现在我怀疑这是一个 Angular 问题,我相信这是一个精简服务器问题。

有人有这方面的经验吗?谢谢

4

3 回答 3

0

如果您使用的是 webpack,那么您需要更改配置以使其正常工作。请在 webpack 开发服务器配置文件中进行更改

historyApiFallback: {
      disableDotRule: true
    },
于 2017-11-29T11:32:07.857 回答
0

我为这个问题找到了合适的解决方法。基本上我正在摆脱路径参数“:token”并用查询参数替换它

在 app.component.ts 中,新路径现在如下所示:

{path: '/confirmuser', name: 'ConfirmUser', component: ConfirmUserComponent}

一个这样的 URL:

http://localhost:3000/confirmuser?token=eyJhbGciOiJIUzI1NiJ9.eyJ1c2VySWQiOjYsInVzZXJOYW1lIjoiYXNkZmFzQGNlZC5saSJ9.PMzNWp8mbUKbSAiOqhOqjhZUYNejXY3pIQueBkc8_2E

在处理这个请求的组件中,我可以像以前一样继续调用路由参数。所以没有什么可以改变的:

constructor(params: RouteParams){
  this.token = params.get('token')
...
于 2016-04-13T15:17:34.470 回答
0

这个问题已在https://stackoverflow.com/a/36283859/1465640@中得到解答

但它可以用点来概括,在 url 中不起作用,除非你在 lite-server config 上做一些工作

于 2016-07-25T12:54:09.437 回答