Angular2 /不能GET / page_name

时间:2018-05-04 18:33:02

标签: angular oauth-2.0 routes

我创建了angular2应用程序,使用路由进行配置。页面通过浏览器打开。但是,当我通过(例如邮递员)尝试GET请求时,我收到“Can not GET / page_name”消息。错误404.如果我对主网址运行GET请求(localhost:4200)我使用index.html中的html内容获得OK状态

我错过了什么吗?

感谢您的时间。

更新

为问题提供更多背景信息。我已使用隐式授权实施OAuth2身份验证。在使用隐式授权生成经过身份验证的OAuth2令牌后,输入用于对Spring进行身份验证的用户/密码(即后端)。问题是隐式授权将URL(redirect_uri)中的标记表示为散列片段(锚)"#"。因此,必须在客户端解析该值。我的redirect_uri设置为使用URL中的令牌返回角度应用程序登录页面(http://localhost:4200/login)。并且重定向它失败了404.我直接测试通过邮递员访问http://localhost:4200/login我得到了同样的404错误。访问http://localhost:4200会返回index.html source html。

3 个答案:

答案 0 :(得分:0)

您可以指定您正在访问的网址,通常以角度显示路由为localhost:4200 / path

其中路径是您在路由配置中为该页面指定的路径 例如。

const appRoutes: Routes = [
   { path: 'Product', component: Appproduct },
   { path: 'Inventory', component: AppInventory },
];

您的网址应为http://localhost:4200/Product

答案 1 :(得分:0)

Angular在单页面应用程序领域运行,因此当您运行角度应用程序时,访问应用程序的唯一方法是转到index.html中base_ref属性中指定的索引页面。

当您查询索引页面时,您可以使用特定的路由配置来路由应用程序。同样,主页面是从index.html加载的,一旦你在应用程序本身,你可以从那里开始路由。

如果您想通过Postman查询应用程序中的特定页面,您可以在您的请求中发送一些URL参数,并在您的应用程序的主页上,解析URL参数并将您的用户发送到页面上这个:

this.router.navigate(['/example'])

由于您在本地主机上运行此功能,因此您可以在浏览器中访问该页面,但除非您执行内部操作,否则您将无法使用http://localhost:4200/example之类的邮件进行GET使用您的应用程序进行路由。

答案 2 :(得分:0)

我认为我要做的不是向Spring发送GET请求以进行身份​​验证,而是将用户重定向到Spring登录页面,一旦经过身份验证,它将重定向回Angular。我的全部想法是从Angular本身向Spring发送登录请求。但是,我认为这种方法应该这样做。

用户点击Angular登录页面,如果令牌不存在,用户将被重定向到Spring登录页面。一旦经过身份验证,用户就会被重定向回Angular登录页面,请求应该带有令牌,并由Angular登录页面组件处理(将其添加到存储等中)。