Javascript 在同一端口上运行单独的ASP.NET项目
我有一个ASP.NETMVC项目,它包含了web应用程序的大部分以及客户端代码使用的web API。API组件开始蔓延,我想将API和MVC应用程序分为两个项目。(MyAppMVC和MyAppAPI)。然而,当MVC应用程序不是一个项目的一部分时,我不确定如何让它与API配合得很好 现在我有了一个API控制器Javascript 在同一端口上运行单独的ASP.NET项目,javascript,c#,asp.net-mvc,asp.net-web-api,Javascript,C#,Asp.net Mvc,Asp.net Web Api,我有一个ASP.NETMVC项目,它包含了web应用程序的大部分以及客户端代码使用的web API。API组件开始蔓延,我想将API和MVC应用程序分为两个项目。(MyAppMVC和MyAppAPI)。然而,当MVC应用程序不是一个项目的一部分时,我不确定如何让它与API配合得很好 现在我有了一个API控制器MyAPIController,它可以回答POST并获取从客户端JavaScript发送到/API/MyAPI的请求。当JS和API都在同一个项目下运行时,我从VisualStudio运行解
MyAPIController
,它可以回答POST并获取从客户端JavaScript发送到/API/MyAPI
的请求。当JS和API都在同一个项目下运行时,我从VisualStudio运行解决方案,并没有问题地使用API
然而,当它们在不同的项目中运行时,这将不再合作。为了避免违反跨域安全性,JS必须在同一域/端口中访问API。然而,VisualStudio在不同的端口上运行我的API和MVC应用程序,试图从MVC文件中的Javascript文件中访问API会导致相同的源错误
有没有办法让这两个不同但互补的项目在同一个域/端口上运行?对于组织和模块化,我真的希望能够将我的web应用程序分为多个项目,而不是将它们集中到一个大型项目中。我可以这样建议
如果要执行此操作,请验证是否可以在运行调试之前浏览项目。您可能会遇到诸如“拒绝访问路径”之类的问题。因此,我在不使用CORS的情况下的解决方案是放弃使用IISExpress,在本地IIS下创建两个单独的应用程序,每个应用程序都有自己的路径,但都位于端口80的默认网站下。这样我就可以到达
http://localhost/MyAppUI
然后从MyAppUI
呼叫http://localhost/MyAppAPI/api
不处理任何跨域问题。转到Visual Studio中的项目属性,然后转到Web,在“服务器”下,将项目url更改为其他端口号并创建虚拟目录
它们在同一个解决方案中吗?您可以在同一站点上使用CORS或不同的IIS应用程序。您可以使用IIS而不是IISExpress/Cassini。把它们放在同一个网站上。我在VS2017中看不到这些选项。它们在.Net Core中可用吗?