Asp.net mvc 在Web API中启用Asp.Net MVC CORS,但不再发送标头

Asp.net mvc 在Web API中启用Asp.Net MVC CORS,但不再发送标头,asp.net-mvc,cors,Asp.net Mvc,Cors,我有两个dotnetmvc站点。一个通过AJAX GET调用从另一个访问Web API 这一切都起了作用,但现在已经停止运行。我几乎没有做任何更改,所以我想知道我的主机是否做了一些更改(例如在IIS中),这会阻止它工作 以下是我最初如何让它工作的 我安装了Microsoft.Aspnet.Cors和Microsoft.Aspnet.WebApi.Cors软件包 我添加了以下代码 public static class WebApiConfig { public static void R

我有两个dotnetmvc站点。一个通过AJAX GET调用从另一个访问Web API

这一切都起了作用,但现在已经停止运行。我几乎没有做任何更改,所以我想知道我的主机是否做了一些更改(例如在IIS中),这会阻止它工作

以下是我最初如何让它工作的

我安装了Microsoft.Aspnet.Cors和Microsoft.Aspnet.WebApi.Cors软件包

我添加了以下代码

public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        config.EnableCors();
在API的控制器中,我添加了

namespace Webscope.Controllers
{
    [EnableCors(origins: "[URL of my other website]", headers: "*", methods: "*")]      
    public class EventAPIController : ApiController 
这以前是有效的,但现在控制台中出现以下错误:

跨源请求被阻止:同源策略不允许读取https:[我的网站URL]/EventRead/1-1-2015/12-12-2099上的远程资源。(原因:缺少CORS标头“访问控制允许原点”)

为了回应@FoggyDay下面的回答,我从Fiddler调用了API,得到了以下标题

HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Type: application/json; charset=utf-8
Expires: -1
Server: Microsoft-IIS/8.0
X-AspNet-Version: 4.0.30319
X-Frame-Options: AllowAll
X-Powered-By: ASP.NET
Date: Fri, 13 Mar 2020 03:56:39 GMT
Content-Length: 198
因此,似乎响应中没有包含CORS头。谁能告诉我为什么会这样

更新

我发现了一些以前试图让CORS工作的无关代码。现在我已经删除了这段代码,我在Fiddler中看到了CORS头

Access-Control-Allow-Headers: *
Access-Control-Allow-Methods: *
Access-Control-Allow-Origin: https://[ calling website's URL ]/
但是,我仍然在调用站点的控制台中收到以下错误

访问位于的XMLHttpRequest '目标站点URL]/api/EventRead/1-1-2015/12-12-2099'来自 原产地“[呼叫网站的URL]”已被CORS阻止 策略:对飞行前请求的响应未通过访问控制 检查:上不存在“访问控制允许原点”标题 请求的资源

建议:

  • 退出“新”更改。听起来你好像无意中引入了第二个标题

  • 请阅读以下内容:

  • 查看您的HTTP流量,例如在中。确认您正在发送标题。。。并验证是否允许主机和端口的正确组合

  • 如果您仍然有问题,请发回确切的错误消息和相关的HTTP头


  • 好的,我已经更新了上面的问题。Fiddler返回了正确的结果数据,但没有CORS头。Q:您更新的HTTP响应来自响应Ajax调用的IIS服务器,对吗?它正在运行ASP.Net,对吗?这是你的“Web API”服务器,对吗?我希望看到
    访问控制允许原点:http://xyz:1234
    (主机名/端口#)作为响应标题之一,
    [EnableCors(origins:…)]
    属性应该可以为您完成此操作。感谢您的帮助。对你所有的问题回答都是肯定的。我已经联系了主持人,他们说他们没有改变任何可能影响它的事情。我可能会尝试在web.config中启用CORS。很抱歉听到这样的消息:(请查看此链接:。并请告诉我们您是如何解决的!@FoddyDay很抱歉时间延迟太久,我不得不紧急处理另一个项目,但我又回来了,而且我还有一步要做。请参阅上面的新信息。谢谢。