【发布时间】:2017-03-08 19:51:16
【问题描述】:
作为数据网格的一部分,我希望用户能够上传文件。我通过对服务器的 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 上传文件,并且该页面在本地或 Web 服务器上都没有遇到任何问题。
这不是在此页面上进行的唯一 ajax 调用,但它是唯一失败的。
【问题讨论】:
-
那么请求的 URL 是什么,应该是什么?它们有何不同?检查浏览器的 Network 控制台
-
这是它请求的 URL:http://[site]/[subdomain]/DataGrid/UploadFile。这正是它应该是的。
-
那应该工作吗?如果发送 cURL 请求,是否返回 404 状态~
curl -v -X POST -H "Content-Type:" "http://[site]/[subdomain]/DataGrid/UploadFile" -
好吧,我做了上面的事情(除了 Powershell 和“Invoke-WebRequest -URI”),是的,我得到了 404。
-
听起来你的服务器端应用程序配置不正确
标签: jquery ajax file-upload asp.net-core-mvc iis-8