繁体   English   中英

坚持理解 ASP.NET 核心中的 CORS 问题

[英]Stuck at understanding CORS problem in ASP.NET Core

我在两个不同的 URL 上部署了完全相同的服务。

请注意,它们是同一应用程序的发布,并且它们是相同的(代码和配置)。 但是,它们托管在两个不同的 URL 上:

  1. https://api.example.com
  2. https://api.admin.example.com

然后在我的 React 应用程序中,我使用 axios 连接到它们。 这是我的 axios 配置和请求拦截器:

const axiosApi = axios.create({
  baseURL: import.meta.env.VITE_API_URL
})

const requestInterceptor = config => {
  config.headers['Content-Type'] = 'application/json';
  config.headers['Accept'] = 'application/json';
  config.headers['X-Client'] = 'React';
  if (localStorage.getItem('locale')) {
    config.headers['Locale'] = localStorage.getItem('locale');
  }
  return Account.updateToken(() => {
    config.headers.Authorization = `Bearer ${app.token()}`;
    return Promise.resolve(config);
  })
}

axiosApi.interceptors.request.use(requestInterceptor);

我的客户端应用程序位于https://admin.example.com

当我向https://api.admin.example.com发送请求时,一切正常。

但是当我向https://api.example.com发送请求时,我收到 CORS 错误:

CORS 策略已阻止从源“https://admin.example.com”访问“https://api.example.com/cache/clear”处的 XMLHttpRequest:对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”header。

我的 .NET API 配置是这样的:

        services.AddCors(o => o.AddPolicy("AllOrigins", builder =>
        {
            builder.AllowAnyOrigin()
                    .AllowAnyMethod()
                    .AllowAnyHeader();
        }));

并且两个 API URL 实际上在所有方面都是相同的。

这里有什么问题?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM