Node JS Webservice在收到请求后将用户重定向到某个URL

时间:2018-05-18 09:35:53

标签: node.js angular

尝试在2个Web应用程序之间实现非常简单的连接。在这种情况下,我将使用站点A和站点B以便于参考。

网站A

  1. 实现一个打开网页并通过Site B调用SOAP或REST Web服务的简单方法
  2. 使用文本"网站A请求"
  3. 发送请求

    Site B Node JS

    1. 收到Site B的请求
    2. 如果请求包含文字"网站A请求",则将用户重定向到页面" www.SiteB.com"
    3. 如果请求中不包含必填文字,请将用户重定向到第34页www.google.com"
    4. 需要传递文字"网站A"到Angular,允许www.siteB.com显示文本"欢迎网站A"
    5. 这样的实现是否可行?如果是这样,我如何从NodeJS执行重定向?

1 个答案:

答案 0 :(得分:2)

为了更容易..我只是从同一台服务器重定向到不同的路线..

app.get('/redirect/:test', (req, res)=>{
    if (req.params.test == 'Site B request') {
        res.cookie("test", req.params.test, {
            maxAge: 1000
        });
        res.redirect(301, '/autologin/');
    }
    else {
        res.redirect(301, 'http://google.com');
    }
});

app.get('/autologin/', (req, res) => {
    let cookie = undefined;
    if(req.headers['cookie']){
        cookie = req.headers['cookie'].substr(5);
    }
    console.log(cookie);
    if(cookie){
        res.cookie('test' ,cookie, { maxAge: 9000,expires: 600});
        res.redirect(301,'/');
    }else{
        res.redirect(301, 'http://google.com');
    }
})

和角度代码...... 我使用ngx-cookie作为cookie服务..

export class AppComponent {
    title = 'app';

    constructor(
        @Inject(PLATFORM_ID) private platformId: Object,
        private _cookieService: CookieService
    ){}

    ngOnInit(){
        if(isPlatformBrowser(this.platformId)){
            let x:any = this._cookieService.getAll();
            if(x.test){
                this.title = x.test;
            }
        }
    }
}