'请求头中没有 Access-Control-Allow-Origin

问题描述 投票:0回答:1

我已经使用 ASP.NET Core 创建了一个 API,在 Program.cs 中我指定了允许的来源策略,如下所示:

var origins = 'allowedOrigins';
builder.Services.AddCors((options) => {
  options.AddPolicy(origins, (policy) => {
    policy
      .WithOrigins(
        'http://10.9.8.50:80',
        'http://10.9.8.50:81',
        'http://10.9.8.50:7087',
        'http://10.9.8.50:5000'
      )
      .AllowAnyHeader()
      .AllowAnyMethod();
  });
});

app.UseCors(origins);

我正在使用基本的 JavaScript 获取方法来调用 POST

async function postData(url = '', data = {}) {
  let value;
  const p = await fetch(url, {
    method: 'POST',
    mode: 'cors',
    cache: 'no-cache',
    credentials: 'same-origin',
    headers: {
      'Content-Type': 'application/json',
    },
    redirect: 'follow',
    referrerPolicy: 'no-referrer',
    body: JSON.stringify(data),
  }).then((response) => (value = response.text()));
  return value;
}

最近,在我尝试发布对其中一个控制器的逻辑的一些修改后,服务器开始表现得很奇怪。我开始收到“请求标头中没有 Access-Control-Allow-Origin”。

我正在使用 IIS 10 服务器,我尝试在 web.config 中注入 CORS 策略,但我开始收到一条错误消息,指出 Access-Control-Allow-Origin 中只允许使用一个值。

我想知道引发这一切的问题可能是什么,以及解决方案是什么。

谢谢

编辑:我将以下行添加到我的 web.config 文件中

<cors enabled="true" failUnlistedOrigins="false">
        <add origin="*" allowed="true" />
</cors>

现在我收到以下错误:

已被 CORS 策略阻止:预检响应中的 Access-Control-Allow-Headers 不允许请求标头字段内容类型。

javascript asp.net asp.net-core cors fetch-api
1个回答
0
投票

将以下行添加到我的 API 的 web.config 文件中解决了问题。

<cors enabled="true" failUnlistedOrigins="false">
    <add origin="*" allowed="true">
        <allowHeaders allowAllRequestedHeaders="true"/>
    </add>
</cors>
© www.soinside.com 2019 - 2024. All rights reserved.