首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将重定向从服务器发送到角

将重定向从服务器发送到角
EN

Stack Overflow用户
提问于 2019-07-28 23:10:48
回答 2查看 2.4K关注 0票数 1

试图向我的服务器上的HTML页面发送一个response.sendRedirect,但是角边的函数总是试图将我的HTML页面解析为JSON。尽管我正在将我的可观察到的泛型配置为“任意”。到处找都找不到答案。谢谢所有想帮忙的人。

代码语言:javascript
运行
复制
  protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        request.getSession().invalidate();
        String loginUrl = new Gson().toJson("login.html");
        PrintWriter out = response.getWriter();
        response.setContentType("application/json");
        response.setCharacterEncoding("UTF-8");
        out.print(loginUrl);
        out.flush();
    }
public logOut():Observable<any> {
    return this.client.get<any>("../Login");
  }



 public disconnect():void {
    this.service.logOut().subscribe( content => {   
    }, fail => {
      console.log(fail);
    });

JSON.parse位置0处JSON中的意外令牌<

http://localhost:8080/解析过程中Http失败.

EN

Stack Overflow用户

发布于 2019-07-29 01:43:34

Daniel :不要将login.html从服务器上发回。发回这样的东西:'{"redirectTo": "login"}'

首先,您需要在服务中导入角路由器:

代码语言:javascript
运行
复制
import {Route} from "@angular/router"

然后将其插入组件构造函数中:

代码语言:javascript
运行
复制
constructor(private route: Route) { }

最后,在您的disconnect()方法中:

代码语言:javascript
运行
复制
public disconnect():void {
    this.service.logOut().subscribe( content => {
         this.route.navigate([`/${content.redirectTo}`])
    }, fail => console.log('Display fail error:', fail)
  )
);

此外,disconnect()方法可能不是必要的,因为您可以在以下几个方面完成工作:

代码语言:javascript
运行
复制
  logOut(): Observable<any> {
    return this.client.get<any>('../Login')
      .pipe(
        map(success => this.route.navigate([`/${success}`]),
        catchError(fail => console.log('Display fail error:', fail)
        // and then redirect somewhere
        )
      )
  }
票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57245617

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档