我已经创建了简单的.NET Core服务来从Angular客户端发送邮件。在开发环境中,当客户端和服务器在本地主机的不同端口上运行时,它可以正常工作,但是在托管客户端发布服务时收到错误:
”已被CORS政策屏蔽:对飞行前的响应 请求未通过访问控制检查:否 请求中存在“ Access-Control-Allow-Origin”标头 资源。”
出于测试目的,我已经实施了临时开放政策。
在Startup.cs中添加:
services.AddCors(o => o.AddPolicy("OpenPolicy", builder => {
builder.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader();}));
和
app.UseCors("OpenPolicy");
在控制器中:
[EnableCors("OpenPolicy")]
[Route("api/[controller]")]
[ApiController]
public class MailController : ControllerBase
{
[EnableCors("OpenPolicy")]
[HttpPost]
public MailResult SendMessage([FromBody]Mail mail)
{
...
我错过了什么吗?可以托管配置吗?
答案 0 :(得分:0)
这是一个模糊的问题,也许您还需要允许凭据:
builder.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader()
.AllowCredentials();