Jquery 部署MVC4WebAPI项目api';浏览器找不到的

Jquery 部署MVC4WebAPI项目api';浏览器找不到的,jquery,asp.net-mvc-4,Jquery,Asp.net Mvc 4,我已经创建了MVC4项目,我正在服务器2008上部署该应用程序,当我们运行该应用程序时,在firebug和IE控制台中,我们收到错误404 Not Found。你能建议我们如何解决这个错误吗 我猜您已经在javascript文件中硬编码了Web API的url: <script type="text/javascript"> $.ajax({ url: '/api/session/login', type: 'POST', d

我已经创建了MVC4项目,我正在服务器2008上部署该应用程序,当我们运行该应用程序时,在firebug和IE控制台中,我们收到错误404 Not Found。你能建议我们如何解决这个错误吗


我猜您已经在javascript文件中硬编码了Web API的url:

<script type="text/javascript">

    $.ajax({
        url: '/api/session/login',
        type: 'POST',
        data: ...
    });

</script>

$.ajax({
url:“/api/session/login”,
键入:“POST”,
数据:。。。
});
不要使用url帮助程序生成此方法的url:

<script type="text/javascript">

    $.ajax({
        url: '@Url.RouteUrl("DefaultApi", new { httproute = "", controller = "session", action = "login" })',
        type: 'POST',
        data: ...
    });

</script>

$.ajax({
url:'@url.RouteUrl(“DefaultApi”,新的{httproute=“”,controller=“session”,action=“login”}),
键入:“POST”,
数据:。。。
});
您需要使用url帮助程序的原因是,当您在IIS中部署应用程序时,您可能会将其部署在虚拟目录中,因此API的正确位置现在是
someappname/API/session/login
,而不仅仅是
/API/session/login
。如果使用url帮助器,它将考虑虚拟目录名