我刚刚开始学习Angular,现在我正在开发一个小应用程序来实践它,后端是通过Spring boot开发的。
我做过一名服务生,目的是要从DB mysql中获取所有学生,而api其余的都在工作。
这是我在控制台中遇到的错误: analytics.js:1 GET http://makeappdev.xyz/1e6ab715a3a95d4603.js净值:: ERR_NAME_NOT_RESOLVED
import { Component, OnInit, Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { StudentService } from '../services/student.service';
@Component({
selector: 'app-list-student',
templateUrl: './list-student.component.html',
styleUrls: ['./list-student.component.css']
})
@Injectable()
export class ListStudentComponent implements OnInit {
listStudent;
currentStudent;
constructor(private httpClient: HttpClient, private studentService : StudentService) { }
ngOnInit() {
this.studentService.getListStudent();
this.listStudent = this.studentService.listStudent;
}
-
当我直接从componenet调用GET方法时,当我尝试将其放在服务上时,它就不再起作用了
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
@Injectable()
export class StudentService {
public listStudent;
constructor(private httpClient: HttpClient) { }
public getAllStudent() {
this.httpClient
.get('http://localhost:8080/etudiants')
.subscribe(
(response) => {
this.listStudent = response;
console.log('Ok ! : ');
},
(error) => {
console.log('Ko ! : ' + error);
}
);
}
public getListStudent() {
this.getAllStudent();
return this.listStudent;
}
}
先谢谢您
答案 0 :(得分:0)
您拥有的东西应该可以工作,除非您可能与端点建立了连接。这可能意味着您访问的任何域都需要更新其域名服务器。
ERR_NAME_NOT_RESOLVED表示无法解析域名。 DNS(域名系统)负责解析域名,互联网上的每个域名都有一个名称服务器,这使得DNS可以解析域名。
您正在使用Chrome吗?如果是这样,您可以尝试清除主机缓存,或尝试使用其他浏览器。
除此之外,我可能会对此进行一些重构。您正在调用异步请求,但是将对服务中公共存储值的引用传递给组件。要清理此问题,您可以将Observable
传递回组件以访问响应,也可以将列表存储在服务中以供以后访问。我可能会将服务中的列表设为私有,并提供一个吸气剂,使其无法直接更新。
您可以使用此Stackblitz尝试端点,看看它是否仍然失败,因为它可以使用reqres
进行工作,这包括我上面的建议。
https://stackblitz.com/edit/angular-mcu7my?embed=1&file=src/app/app.component.html