要解决Angular应用在IIS上的CORS问题,导致POST请求失败,可以采取以下步骤:
标签下添加以下代码:
这将允许所有来源的请求,并允许使用的HTTP方法和标头。
import { HttpHeaders } from '@angular/common/http';
// ...
const httpOptions = {
headers: new HttpHeaders({
'Content-Type': 'application/json',
'Access-Control-Allow-Origin': '*'
})
};
// 使用httpOptions作为参数发送POST请求
this.http.post(url, body, httpOptions).subscribe(
// 请求成功处理逻辑
response => {
console.log(response);
},
// 请求失败处理逻辑
error => {
console.error(error);
}
);
在上述代码中,Access-Control-Allow-Origin
标头设置为*
,以允许跨域请求。
确保IIS服务器配置正确。确保IIS服务器已启用CORS,可以通过编辑IIS站点的web.config
文件或在IIS管理器中配置。
如果仍然无法解决问题,可以尝试使用npm
包cors
来处理CORS问题。在Angular应用的package.json
文件中添加cors
依赖项,然后运行npm install
以安装它。在Angular应用的app.js
文件中,添加以下代码:
const express = require('express');
const cors = require('cors');
const app = express();
app.use(cors());
这将在Angular应用的本地服务器上启用CORS。
通过执行上述步骤,您应该能够解决Angular应用在IIS上的CORS问题,并成功发送POST请求。