为什么在服务器而不是本地发送 ajax 请求时得到 404?
Why do I get a 404 when sending an ajax request on the server but not locally?
作为数据网格的一部分,我希望用户能够上传文件。我通过对服务器的 jquery ajax 调用来完成此操作。这是我的 ajax 电话:
var formData = new FormData();
formData.append("file", Data.File); //Data.File is a File object from a file input
$.ajax({
type: "POST",
url: "@Url.Action("UploadFile")",
data: formData,
contentType: false,
processData: false
});
而且,这是我的控制器动作签名:
[HttpPost]
public IActionResult UploadFile()
当我通过 IIS Express 在本地测试它时,它运行良好。但是,当我发布到 IIS Web 服务器时,它只给我 404 错误。我已经研究了 IIS 端的可能原因,但它们似乎都与大文件有关。我正在测试的文件并不大;我测试过的所有文件都在 1 MB 以下。我还有另一个页面,我允许通过 ajax 上传文件,并且该页面在本地或网络服务器上没有遇到任何问题。
这不是在此页面上进行的唯一 ajax 次调用,但这是唯一一次失败的调用。
起初,我很困惑,因为正如我在原文 post 中指出的那样,我有一个页面正在执行与我目前遇到的问题完全相同的操作。然而,经过痛苦的长时间后,我意识到该操作可能会返回 404,因为抛出了一些异常。所以我做了理性的事情,在我的代码中放置了一个 try-catch 块并返回了任何错误。
那时我才意识到虽然调用是相同的,但我在后端做了一些不同的事情。我忘记了该站点依赖于我在本地安装的软件,而不是 Web 服务器上的软件。在服务器上安装该软件后,文件正常上传。
tl;dr: 该操作返回 404,因为它因 Web 服务器上缺少软件而抛出异常。
作为数据网格的一部分,我希望用户能够上传文件。我通过对服务器的 jquery ajax 调用来完成此操作。这是我的 ajax 电话:
var formData = new FormData();
formData.append("file", Data.File); //Data.File is a File object from a file input
$.ajax({
type: "POST",
url: "@Url.Action("UploadFile")",
data: formData,
contentType: false,
processData: false
});
而且,这是我的控制器动作签名:
[HttpPost]
public IActionResult UploadFile()
当我通过 IIS Express 在本地测试它时,它运行良好。但是,当我发布到 IIS Web 服务器时,它只给我 404 错误。我已经研究了 IIS 端的可能原因,但它们似乎都与大文件有关。我正在测试的文件并不大;我测试过的所有文件都在 1 MB 以下。我还有另一个页面,我允许通过 ajax 上传文件,并且该页面在本地或网络服务器上没有遇到任何问题。
这不是在此页面上进行的唯一 ajax 次调用,但这是唯一一次失败的调用。
起初,我很困惑,因为正如我在原文 post 中指出的那样,我有一个页面正在执行与我目前遇到的问题完全相同的操作。然而,经过痛苦的长时间后,我意识到该操作可能会返回 404,因为抛出了一些异常。所以我做了理性的事情,在我的代码中放置了一个 try-catch 块并返回了任何错误。
那时我才意识到虽然调用是相同的,但我在后端做了一些不同的事情。我忘记了该站点依赖于我在本地安装的软件,而不是 Web 服务器上的软件。在服务器上安装该软件后,文件正常上传。
tl;dr: 该操作返回 404,因为它因 Web 服务器上缺少软件而抛出异常。