JavaScript文件在IIS上返回404 Not Found

JavaScript file returns 404 Not Found on IIS

本文关键字:Not Found 返回 文件 IIS JavaScript      更新时间:2023-12-11

现在我知道同一个问题有几个问题,但我找不到解决方案,因为我对JavaScript和/或IIS还很陌生。

因此,我在MVC应用程序中有一些Java脚本,当通过Visual Studio IIS express在本地运行时,它可以毫无问题地运行。我还有一个IIS网站,我发布了完全相同的代码。除了JavaScript之外,一切都很好。我将我的脚本包含在Razor视图中,如下所示:

<script src="@Url.Content("~/Scripts/jquery-1.10.2.min.js")" type="text/javascript"></script>

下面的JavaScript是我正在尝试运行的。

<script>
function executeQuery() {
    var url = "/Application/CheckMobileResponse";
    debugger;

    $.get(url, { applicationId: @Model.ApplicationId, userId : @Model.UserId }, function(response) {
        debugger;
        //doing some stuff
    });
    setTimeout(executeQuery, 3000);
}
$(document).ready(function() {
    setTimeout(executeQuery, 3000);
});

基本上,我每3秒调用一次操作,并根据响应使用window.location.htm重定向到新视图。

我很困惑,因为在谷歌chrome上的控制台窗口中,我得到了404服务器响应错误如下:

未能加载资源:服务器响应,状态为404(未找到)jquery-1.10.2.js:8720

得到http://localhost/Application/CheckMobileResponse?applicationId=1&userId=5404(未找到)

在我看来,它正在查找jQuery文件,因此可能不是无法加载JavaScript文件的情况。但它却失败了,因为它找不到我对GET请求的操作(这很奇怪,因为这在Visual Studio IIS Express上非常有效)。

404错误意味着,您试图访问的url不存在/找不到!

根据你的评论,你的网站的基本名称是localhost/AppDashboard。但当你运行代码时,它正试图调用http://localhost/Application/CheckMobileResponse。它缺少AppDashboard!url中的一部分。

您不应该像那样对操作方法的路径进行硬编码。始终尝试使用Url.Action助手方法来生成操作方法的正确url。这样,无论您的用户当前所在的页面/路径是什么,您的代码都可以工作(将生成正确的url)。

 var url = "@Url.Action("CheckMobileResponse","Application")";

当页面渲染时,razor将执行Url.Action方法并生成url。因此,如果你把上面的代码放在一个剃刀视图中,它就会工作。但是,如果您的js代码位于外部js文件中,请按照本文中解释的解决方案进行操作。