我在Visual 2013中有一个解决方案,它包含MVC、Web和contains。我已经设置了多个启动项目,因此两个项目在调试时都在同一时间启动。两者都启动OK,但它们运行在不同的端口上,因此前端无法从后端调用api。
前端的请求如下所示:
$http.get("api/MenuItems").then(function(response) {
//do something here
});后端有这样的控制器:
[RoutePrefix("api/MenuItems")]
public class MenuController : ApiController
{
public IHttpActionResult Get()
{
return Ok(MenuItem.GetItems());
}
}我如何调试这个?我想在Web的控制器中设置断点,看到调试器在fron-趋向触发请求时停止,但是这种情况从未发生.我是不是遗漏了什么?
这是受教程使用AngularJS Web 2、Owin和标识进行ASP.NET令牌身份验证的启发
tutoprial的源代码是tjoudeh/AngularJSAuthentication
发布于 2015-05-20 15:50:36
因为它们运行在不同的端口上,所以必须指定完整的url。一个完整的网址是http://host:port/address
因此,如果后端服务器位于端口80,则应该让api调用http://localhost:80/api/menuItems。
当url是相对的,它将转到同一个主机,因此如果您的前端位于端口40,/api/menuItems引用http://localhost:40/api/menuItems
然后,如果您正在调试web,并且在控制器函数Get()的开头放置一个断点,那么您应该能够调试请求
发布于 2017-03-28 10:36:56
基本上,如果您希望能够同时调试AngularJS和MVC服务器端代码( Visual中的F5),则需要在IIS中配置网站。因此,服务器端和客户端可以调用相同的域(而不是使用端口)。
https://stackoverflow.com/questions/30353903
复制相似问题