如何在角度 CLI 中接收当前路由响应?
Posted
技术标签:
【中文标题】如何在角度 CLI 中接收当前路由响应?【英文标题】:How to receive current routes response in angular CLI? 【发布时间】:2018-07-24 18:13:40 【问题描述】:对单个应用程序使用angualar cli和nodejs,在nodejs中配置passportjs,node提供用户数据并返回带有角度端口的对象,如何在ngOnInit()
接收角度路由中的此响应?
重定向网址:http://localhost:4200/api/pauth?code=4%2FAAAOF7UrUC...
我也有相同的角度路径/api/pauth
来访问数据。
对上述 URL 的响应(来自 nodejs):
"status":"0","message":"Looged in successfully","user":"_id":"5a797783cb91253f8c667232","email":"example@gmail.com","password":"ya9.GltZBYvinL7N6D6OvgQ1z2Poa7ceOO3TS7LQB-CcsT3","authType":"google","createdAt":"2018-02-06T09:38:11.965Z","updatedAt":"2018-02-06T09:38:11.965Z","__v":0
component.ts:
constructor(private http:Http, private router:Router,private httpc: HttpClient)
ngOnInit()
console.log(this.router.url);
this.http.get(this.router.url).subscribe(res =>
this.posts = res;
console.log(this.posts);
);
【问题讨论】:
是否在进行 API 调用? @151291 @rohith - Angular 对 nodejs 进行 api 调用。 angular 和 nodejs 都遵循路线。并在浏览器中获取上述 url 的响应,但不知道如何在组件中接收它。 你想从 url 中获取价值? 在浏览器 url 你得到一个数据?但是当你通过 Angular 进行 api 调用时,你没有得到?检查网络是否正在发生 api 调用? @rohith - 一直通过浏览器 url 获取对象数据。 【参考方案1】:替代解决方案:
两个端口混合时无法访问对象响应,需要使用参数从 Node JS 重定向,现在可以处理角度路由。
来自节点的示例 - api.js:
var code = req.user._id;
var url = 'http://localhost:4200/pauth?id='+code;
res.redirect(url);
【讨论】:
这是什么?您的问题的一部分? 如果是这样,请把它放在你的问题中,而不是在这里。 @juancab - 这是我的替代解决方案,但无法访问响应。【参考方案2】:我会用 httpclient 告诉解决方案,我希望你在 app.module.ts 中导入 httpclient 模块
constructor(private http: HttpClient)
let headers = new HttpHeaders('Content-Type': 'application/json' );
this.options =headers;
ngOninit()
this.getdata().subscribe(data=>console.log(data))
getdata()
this.http.get<any>(url,
headers:this.options,responseType:"json",observe:"response")
.map(res =>res.body)
【讨论】:
当前网址有响应,需要手动添加吗? 不,您必须设置标头,因为您的请求返回 json以上是关于如何在角度 CLI 中接收当前路由响应?的主要内容,如果未能解决你的问题,请参考以下文章