Javascript 向ASP.NET核心Web API发出post请求时阻止跨源请求

Javascript 向ASP.NET核心Web API发出post请求时阻止跨源请求,javascript,asp.net-web-api,vue.js,asp.net-core,Javascript,Asp.net Web Api,Vue.js,Asp.net Core,我有一个Web API,它有两个控制器,我在启动类中启用了Cors,下面是我的配置服务方法: public void ConfigureServices(IServiceCollection services) { services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1); services.AddCors(o => o.AddPo

我有一个Web API,它有两个控制器,我在
启动
类中启用了Cors,下面是我的
配置服务
方法:

public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);

            services.AddCors(o => o.AddPolicy("MyPolicy", builder =>
            {
                builder.AllowAnyOrigin()
                       .AllowAnyMethod()
                       .AllowAnyHeader();
            }));
            services.AddAutoMapper();
        }
这里是配置方法:

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }
    else
    {
        app.UseHsts();
    }

    app.UseCors(
        options => options.AllowAnyOrigin()
        .AllowAnyMethod()
        .AllowAnyHeader()
    );

    app.UseHttpsRedirection();
    app.UseMvc();
}
现在,我有两个控制器。当我向该方法发出
GET
请求时,一切正常:

[Route("api/[controller]")]
[ApiController]
[EnableCors("MyPolicy")]
public class MovieController : ControllerBase
{
    public async Task<IActionResult> Get()
    {
        HttpClient httpClient = new HttpClient();

        var responseMessage = await httpClient.GetAsync("https://copafilmes.azurewebsites.net/api/filmes");

        if (!responseMessage.IsSuccessStatusCode) return null;

        var jsonResult = await responseMessage.Content.ReadAsStringAsync();

        return Ok(jsonResult);
    }
然后,我在浏览器控制台中得到消息:

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://worldcupapi-gabs.azurewebsites.net/api/cup. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing).
我正在尝试通过Vuejs简单应用程序发布此帖子,您可以在此处尝试:


只需选择8张卡片(单击它们,它们将变为灰色),然后单击“提交”按钮。

这是一个令人惊讶的常见现象-没有设置CORS标题的原因是因为您的服务器抛出错误并返回500状态代码。当抛出错误时,不会设置CORS头(这将在2.2中更改)。您需要调查服务器抛出错误的原因,暂时忽略CORS方面的问题。是的,就是@KirkLarkin!想回答吗?我可以接受吗?这里同样。有很多这样的问题,所以删除可能是最好的现在你的问题解决了。
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://worldcupapi-gabs.azurewebsites.net/api/cup. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing).