CORS 问题 asp.net 核心 Web API。不存在"访问控制允许源"标头



我正在使用asp net core 2.1,我有一个具有以下方法的帐户控制器:

[HttpPost("login")]
public async Task<object> Login([FromBody] IdentityUserForLoginDto userForLogin)
{...}
[HttpPost("register")]
public async Task<object> Register([FromBody] IdentityClientForRegistrationDto userForRegistration)
{...}

当我在登录方法上获取数据时,一切正常,用户正常登录,但是当我尝试注册新用户时,我收到 CORS 问题:

CORS 策略已阻止从源"http://localhost:3001"获取"http://localhost:53531/api/account/register"的访问:请求的资源上不存在"访问控制-允许源"标头。如果不透明响应满足您的需求,请将请求的模式设置为"no-cors",以便在禁用 CORS 的情况下获取资源。

和:

发布 http://localhost:53531/api/account/register 网::ERR_FAILED

在我的后端,我尝试了启用 CORS 的所有可能组合,现在我有这个:

配置服务:

services.AddCors(options => options.AddPolicy("ApiCorsPolicy", builder =>
{
builder
.WithOrigins("http://localhost:3000", "http://localhost:3001")
.AllowAnyHeader().AllowCredentials()
.AllowAnyMethod();
}));

配置

app.UseCors("ApiCorsPolicy");

客户端数据获取:

fetch(`http://localhost:53531/api/account/register`, {          
method: 'POST',        
headers: { 'Content-Type': 'application/json'},   
body: JSON.stringify(values)

})
.then(handleResponse)
.then(user => {
localStorage.setItem('currentUser', JSON.stringify(user));
currentUserSubject.next(user);
return user;
});

它们都放在Add/UseMvc之前。 我尝试过AllowAnyOrigin,[EnableCors]等。但总是一样。 我想指出的是,我也尝试从客户端禁用 cors,但在这种情况下,我得到文本/纯媒体类型,我明确想要应用程序/json

此外,当我在邮递员中提出相同的请求时,一切正常..

有没有人知道如何解决这个问题?

我解决了这个问题。发送到服务器的数据存在问题。.它不是服务器期望的格式

相关内容

最新更新