在本地主机端口之间发送JSON

问题描述:

我有一个运行在端口8799上的ASP.NET MVC应用程序,它通过XMLHttpRequest将JSON数据发布到MVC控制器处理程序。这条管线工作得很好。在本地主机端口之间发送JSON

我最近纺了第二个应用程序,这时候在端口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

如果您在调试中运行VS中的端点,您应该能够捕获并逐步执行代码。 –

+0

端口之间的请求被计为跨域,并且将被没有正确CORS头的浏览器限制。使端口匹配或在服务器上实现CORS。 [查看更多信息](https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS) – Liam

+0

@Liam,看看我是如何为ASP.NET应用程序添加自定义标头的?这不应该解决任何潜在的CORS问题吗?此外,在ASP.NET应用程序中,CORS错误是否会引发某种有用的异常? –

这个问题确实是CORS。无论出于何种原因,我的.NET应用程序未使用web.config文件。因此,我在我的Startup.cs文件中设置CORS设置,而在我的Configure()调用中使用services.AddCors()