【发布时间】:2020-11-06 18:51:11
【问题描述】:
我正在尝试让我的客户端(在本地主机上)成功调用我的服务器(也在本地运行),但没有成功。我已经尝试了几乎所有可以在网上找到的解决方案,但都没有成功,对服务器的 Postman 调用是成功的,对其他已发布服务的类似前端调用也是成功的。希望陌生人的奇迹/帮助!
所以我目前的设置如下:
在 Global.asax 我有 -
public class Global : HttpApplication
{
protected void Application_Start()
{
WebApiConfig.Register(GlobalConfiguration.Configuration);
}
protected void Application_BeginRequest()
{
if (Request.Headers.AllKeys.Contains("Origin") && Request.HttpMethod == "OPTIONS")
{
Response.Flush();
}
}
}
在 WebApi.Config 中 -
public static void Register(HttpConfiguration config)
{
AddRoutes(config);
var cors = new EnableCorsAttribute("http://localhost:4201", "*", "*");
config.EnableCors(cors);
}
使用 System.Web.Http.Cors 导入...
在 Web.Config 我有 -
<system.webServer>
<handlers>
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<remove name="OPTIONSVerbHandler" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Content-Type" />
<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
</customHeaders>
</httpProtocol>
注意,我在 Safari 和 Chrome 上都试过了(连同 Chrome 的 CORS 扩展)。 我遇到了所有这些错误,但鉴于我的其他测试,我认为这实际上是 CORS 问题......
任何提示或建议将不胜感激
【问题讨论】:
标签: asp.net-web-api server cors localhost