我有一个提供文件的操作:
public override FileContentResult Foo() {
var someDataAsBytes = ...
return File(someDataAsBytes, "text/csv", "somefilename.csv");
}
形式很简单:
<form method="get" action="/Foo" id="myForm">
<button type="submit">Download</button>
</form>
我通过脚本启动下载(因此页面不会更改):
$("#myForm").on("submit", function() {
window.location.href = $(this).attr("action");
return false;
});
问题是向服务器发送了两个请求:一个 GET 和一个 HEAD。该操作运行两次,但只为文件提供一次。
如何让它只发送一个请求?或者这是正常行为?
额外信息:
我在 Fiddler 中检查了这一点,对 GET 和 POST 的响应是相同的,除了 GET 有一个非零Content-Length
和实际的有效负载数据。对 HEAD 的响应没有任何内容。两者都返回 200 OK 状态代码。这是正常的吗?
我没有看到你的代码有什么问题。我复制了您的代码并尝试重现您所面临的问题。但我无法在 Chrome、IE 和 Firefox 中重现。
看起来这个问题是您的 FireFox 浏览器特有的,并且是由于某些插件/扩展引起的。禁用浏览器中的所有插件并尝试一下,应该可以。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)