在Angular中,要解决跨域请求返回404错误,可以使用以下方法:
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Methods", "GET, POST, OPTIONS, PUT, DELETE");
response.setHeader("Access-Control-Allow-Headers", "Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With");
Content-Type
和Authorization
等必要的头信息。import { HttpClient, HttpHeaders } from '@angular/common/http';
// ...
const headers = new HttpHeaders()
.set('Content-Type', 'application/json')
.set('Authorization', 'Bearer ' + token);
this.http.get(url, { headers: headers })
.subscribe(
response => {
console.log(response);
},
error => {
console.error(error);
}
);
withCredentials
选项为true
,以允许携带cookie信息。this.http.get(url, { headers: headers, withCredentials: true })
.subscribe(
response => {
console.log(response);
},
error => {
console.error(error);
}
);
angular.json
中添加代理配置,以将请求转发到后端服务器。{
"projects": {
"your-project-name": {
// ...
"architect": {
"serve": {
"options": {
// ...
"proxyConfig": "src/proxy.conf.json"
}
}
}
}
}
}
创建一个名为proxy.conf.json
的代理配置文件,并添加以下内容:
{
"/api": {
"target": "http://your-backend-server",
"secure": false,
"changeOrigin": true
}
}
在请求中使用相对路径,例如/api/your-endpoint
,代理服务器将会将请求转发到http://your-backend-server/api/your-endpoint
。
以上是一些常见的解决跨域请求返回404错误的方法。根据具体情况,可能需要调整和修改这些方法来适应你的项目。