如何在Visual Studio外部调用开发环境Web API并解决CORS问题
ASP.NET .NET4.5.2 开发环境跨域CORS问题
- 我有一个在VS2019中正常运行的旧项目,包含RESTful Web服务和调用该服务的JavaScript代码,由更早版本的VS开发。
- 开发环境中,设置项目启动时打开index.html并启动Web服务,可正常发送带JSON数据的POST请求;但仅启动服务(选择「不打开页面,等待请求...」),从VS外部调用时会出现CORS错误,推测因客户端与服务器端口不同。
错误信息
Response to preflight request doesn't pass access control check: It does not have HTTP ok status.
已尝试的配置
我查阅大量CORS相关内容,在web.config中添加以下配置:
<system.webServer> <httpProtocol> <customHeaders> <clear /> <add name="Access-Control-Allow-Origin" value="*" /> <add name="Access-Control-Allow-Headers" value="Access-Control-Allow-Headers, Origin,Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers" /> <add name="Access-Control-Allow-Methods" value="GET, PUT, POST,OTIONS" /> </customHeaders> </httpProtocol> </system.webServer>
我还找到ASP.NET配置CORS的文档,但似乎不适用于我的情况(已通过NuGet安装CORS包,但无C#配置代码,仅靠web.config)。
需求
我需要允许外部访问开发环境服务,因要使用VSCode和Vue重写客户端代码。我可迁移到VS2022新项目,但有没有更简便的方法?
补充说明
- 使用VS2019是因为它能无缝集成客户端JS与服务器API,无CORS错误
- 项目基于ASP.NET,调试器设为ASP.NET,代码在远程ASP.NET生产服务器运行正常
- 服务器语言为C#,.NET版本4.5.2,开发环境运行在IIS Express
内容的提问来源于stack exchange,提问作者quilkin
相关产品推荐
相关产品推荐

