gpt4 book ai didi

Angular5 服务器端渲染,外部 Api 数据服务在 ssr 中不起作用

转载 作者:太空狗 更新时间:2023-10-29 19:36:14 24 4
gpt4 key购买 nike

我已经成功设置并使用了 Angular5 + SSR。还是很不错的。

所有组件都适用于 SSR 和非 SSR。还有一些服务调用外部 HTTP get API 来获取一些数据。当然,它在非 SSR 模式下也能正常工作。

但是,问题是在SSR上,节点服务器不支持获取和渲染数据。客户端抓取渲染后才能看到抓取到的数据。

import {Injectable} from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import 'rxjs/add/operator/map';
import {Observable} from "rxjs";

const httpOptions = {
headers: new HttpHeaders({ 'Content-Type': 'application/json' })
};

@Injectable()
export class BannerService {

constructor(public http: HttpClient){
console.log('SmsService Initialized...');
}

getBanners(){
return this.http.get(BASE_API_URL + '/getData', httpOptions);
}
}

home.component.ts

import {Component, OnDestroy, OnInit} from '@angular/core';
import { Router } from "@angular/router";
import {Subscription} from "rxjs/Subscription";
import {BannerService} from "../../services/banner.service";

@Component({
selector: 'app-home',
styleUrls: ['home.container.css'],
templateUrl: 'home.container.html'
})

export class HomeContainerComponent implements OnInit, OnDestroy {

public horizontalBannerList1;
public horizontalBannerList2;
public verticalBannerList;
private bannerList;

constructor( private router: Router, private bannerService: BannerService){
...
}

ngOnInit() {
this.initBannerList();
}

ngOnDestroy() {
...
}

initBannerList(){

if(this.bannerList){
return;
}

this.bannerService.getBanners().subscribe(
result => {
console.log("bannerList result : ", result);
this.bannerList = result;
},
error => {
console.error("bannerList error: ", error);
},
() => {
console.log("bannerList completed");
});
}

}

我希望在 SSR 上节点服务器调用 HTTP 请求数据并将其呈现在 index.html 上,但它不是......

我是想念还是被误解了?

附言:报告了相同的问题。 https://github.com/angular/universal/issues/674如果我解决了这些问题或找到了好的文档,我会再次更新它。 :)

最佳答案

本文介绍了如何在 angular universal 中进行后端调用。 https://angular.io/guide/universal#absolute-http-urls

关于Angular5 服务器端渲染,外部 Api 数据服务在 ssr 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49355650/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com