asp.net '请求标头中没有EST-Control-Allow-Origin

mw3dktmi  于 6个月前  发布在  .NET
关注(0)|答案(1)|浏览(86)

我已经用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 fetch方法来调用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;
}


最近,在我试图发布对其中一个控制器的逻辑的一些修改后,服务器开始表现得很奇怪。我开始得到“在请求头中没有控制-允许-起源”。
我正在使用IIS 10服务器,我试图在web.config中注入CORS策略,但我开始得到一个错误,说在Web-Control-Allow-Origin中只允许一个值。
我想知道是什么问题引发了这一切,以及解决方案是什么。
谢谢
编辑:我在web.config文件中添加了以下行

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


现在我得到以下错误:
已被CORS策略阻止:在预检响应中,请求头字段content-type不被EST-Control-Allow-Headers允许。

zc0qhyus

zc0qhyus1#

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

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

字符串

相关问题