我在端口8799上运行了一个ASP.NET MVC应用程序,它通过XMLHttpRequest
将JSON数据发布到MVC控制器处理程序。这条管道工作得非常好。
我最近开发了第二个应用程序,这次是在端口8080上运行的Express应用程序,它再次以相同的方式发布JSON(相同的代码,再次使用XMLHttpRequest
),运行到同一个MVC控制器在端口8799上。但是,这次看起来似乎在控制器收到请求时,它上面没有数据。
我想知道这是否是因为我在这两个端口之间发出了跨源请求。基于这个假设,我在我的web.config
文件中添加了以下自定义标题:
<customHeaders>
<add name="Access-Control-Allow-Origin" value="http://localhost" />
<add name="Access-Control-Allow-Headers" value="X-AspNet-Version,X-Powered-By,Date,Server,Accept,Accept-Encoding,Accept-Language,Cache-Control,Connection,Content-Length,Content-Type,Host,Origin,Pragma,Referer,User-Agent" />
<add name="Access-Control-Allow-Methods" value="GET, PUT, POST, DELETE, OPTIONS" />
<add name="Access-Control-Max-Age" value="1000" />
</customHeaders>
这似乎没有解决问题。我怎样才能调试这个问题,我似乎没有抛出任何特别有用的例外?
答案 0 :(得分:0)
问题确实证明是CORS。无论出于何种原因,我的.NET应用程序都没有使用web.config
文件。因此,我在我的Startup.cs
文件中设置了CORS设置,而不是在services.AddCors()
来电中使用Configure()
。