【发布时间】:2026-01-11 17:30:03
【问题描述】:
我有一个使用 .net core 2.2 的登录 API,它突然返回了这个错误: 从源“https://domain”访问“https://hostname/users/authenticate”处的 XMLHttpRequest 已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:“Access-Control-Allow-Origin”标头包含多个值 '*, *',但只允许一个。
起初我得到了这个错误: 请求的资源上不存在“Access-Control-Allow-Origin”标头。
然后在 web.config 我把 "add name="Access-Control-Allow-Origin" value="*" " 像下面的完整代码:
然后我遇到了一个新错误,我在这篇文章中询问过“标头包含多个值 '*、*',但只允许一个值。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<directoryBrowse enabled="true" />
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Methods" value="GET,PUT,POST,DELETE,OPTIONS"/>
<add name="Access-Control-Allow-Headers" value="Origin, Content-Type, Accept"/>
<add name="Access-Control-Allow-Credentials" value="true" />
</customHeaders>
</httpProtocol>
<rewrite>
<rules>
<rule name="Https ApiLogin Page" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAny">
<add input="{SERVER_PORT_SECURE}" pattern="^0$" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
<modules runAllManagedModulesForAllRequests="true">
<remove name="WebDavModule" />
</modules>
<handlers>
<remove name="OPTIONSVerbHandler" />
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet" arguments=".\WebApi.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
</system.webServer>
</location>
</configuration>
这是我的:header Request 这是我的:Startup.cs
我需要做什么来修复“标题包含多个值'*,*',但只允许一个。”?
【问题讨论】:
-
修复"header包含多个值'*,*',但只允许一个"错误,需要修复您的请求的标头。可以展示一下吗?
-
你是这个意思吗? link