出现该问题是由于浏览器的跨域资源共享策略(CORS)限制,需要在服务器端进行配置以允许跨域请求。具体方法如下所示:
在服务器端设置Access-Control-Allow-Origin头,指定允许跨域访问的域名或IP地址,例如:
'Access-Control-Allow-Origin': 'http://localhost:4200'
设置Access-Control-Allow-Credentials头,允许跨域请求发送cookies,例如:
'Access-Control-Allow-Credentials': 'true'
设置Access-Control-Allow-Headers头,允许请求客户端添加其他头信息,例如:
'Access-Control-Allow-Headers': 'Content-Type'
在Angular的HttpClient中,可以通过设置对应的HttpHeaders来发送请求,例如:
const httpOptions = {
headers: new HttpHeaders({
'Content-Type': 'application/json',
'Access-Control-Allow-Origin': 'http://localhost:4200',
'Access-Control-Allow-Credentials': 'true',
'Access-Control-Allow-Headers': 'Content-Type'
})
};
return this.httpClient.get('https://example.com/data', httpOptions);