为什么我下载文件时有两个请求? [关闭]

2023-12-11

我有一个提供文件的操作:

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(使用前将#替换为@)

为什么我下载文件时有两个请求? [关闭] 的相关文章

随机推荐

  • Windows Phone 获取服务器源代码

    我正在尝试获取网站的源代码 在 Windows 应用程序中 一个简单的 http 请求就足够了 然而在 Windows Phone 中 情况要复杂得多 我在谷歌上搜索了很多 但没有得到明确的答案 这是我尝试过的 但没有取得很大成功 publ
  • 使用“cat”将非英语字符写入.html文件(在R中)

    这是显示问题的代码 myPath getwd cat abcd append T file paste myPath temp1 html sep This is fine cat br br br append T file paste
  • python 如何检查当前时间是否在范围内?

    我需要检查当前时间是否在时间范围内 最简单的情况 time end gt time start if time 6 0 lt now time lt time 12 00 print 1 但是 当用户输入结束时间小于开始时间的时间范围时 就
  • 无法将 datagridview 的行可见设置为 false

    我有一个DataGridView我设置的地方DataSource taskerEntities te new taskerEntities var OMsMasterDescriptiveIndicators te MyTable Sele
  • LINQ - 获取所有父母的所有子记录

    我有两个模型 class Foo public List
  • Python 在循环内从 Csv 创建 XML

    我正在尝试从 csv 创建 xml 文件 CSV CatOne CatTwo CatThree ProdOne ProdTwo ProdThree ProductOne ProductTwo ProductThree 所需的 XML
  • 方案中模 m 的乘法逆元

    我已经编写了模 m 的乘法逆元的代码 它适用于大多数初始情况 但不适用于某些情况 代码如下 define inverse x m let loop x modulo x m a 1 cond zero x f x 1 a else let
  • Karate 支持 Neo4j 数据库吗?

    想知道是否空手道支持 Neo4j 数据库 如果是的话 希望有一个前任 功能会很有帮助 Karate 支持任何Java代码这样你就可以间接地做任何你想做的事情 请看一下这个 JDBC 示例 它将帮助您入门 dogs feature 您将需要编
  • 如何根据用户输入的高度和宽度打印字符串

    我确信这是一个简单的问题 但我的教授在解释事情方面很糟糕 因为我是计算机科学的新手 所以我需要帮助 任务是创建一个函数 根据用户选择的高度和宽度以不同的格式打印 返回用户给出的字符串 例如 如果用户字符串是 lt vvv 相同功能的另一个例
  • VBA - 在子程序中调用 Dir() 时使用 Dir() 循环

    我正在使用以下命令循环访问文件夹 Dim file As Variant file Dir myFolder While file lt gt mySub file lt this sub use Dir hundreds of times
  • 仅为我的公司页面创建 Facebook 标签

    我已经创建了一个公司页面 并想要创建一个只能安装在我的页面上的自定义选项卡 我知道如何创建应用程序并安装自定义选项卡 如何设置该应用程序以便只有我可以安装它 谢谢 对应用程序的 页面选项卡 URL 通过页面选项卡加载应用程序时使用的 URL
  • Tabhost 中的 ProgressDialog 不工作

    我在我的活动中使用三个进度对话框 OnCreate 当导航到下一页时 当导航到上一页时 但是当我第一次单击下一页按钮时 应用程序因错误而崩溃WINDOW LEAKED 这是我的代码 请有人告诉我做错了什么 public class Requ
  • 从 OleVariant 获取 IStream

    我正在使用 Delphi 和 WinHTTP 来执行 HTTP 请求以从 Internet 下载一些文件 并且我可以执行该请求 但我不知道如何从返回的 OleVariant 获取 IStreamResponseStream 我花了很多时间谷
  • Ant:以编程方式创建 JUnit 报告任务

    我使用 Ant API 以编程方式创建任务 但我还没有找到创建 JUnit 报告任务的类 简而言之 我想要使用 Ant API 的等效代码
  • PHP:一个 mysql_query 语句中的多个 SQL 查询

    所以我有一个需要使用 mysql query 加载的 SQL 转储文件 不幸的是 不可能用它执行多个查询 gt 不能假设mysql 命令行客户端 mysql help 已安装 用于直接加载 SQL 文件 gt 不能假设mysqli扩展已安装
  • Javascript自动更新页面?

    任何人都可以给我一个方向 我想知道如何像 Facebook 那样自动更新页面以获取新的状态更新 新的喜欢等 即 如果您在窗口中打开一个状态并且用户单击 喜欢 则 1 喜欢会自动出现 提前致谢 这些是使用 PUSH 模型 订阅 发布 完成的
  • 在 Eclipse 中运行 Java 程序,就像从命令行一样

    因此 我发现了一些与我类似的问题 但没有一个具体解决了我遇到的问题 我的程序将由命令行参数调用 例如 java Main inputFile txt inputFile2 txt 我正在 Eclipse 中编程并使用public void
  • UI 属性不包含某些键

    我有以下问题 我需要获取 UI 属性 UIManager getString OptionPane okButtonText 返回字符串 OK 并且它有效 但是 如果我迭代UIDefaults钥匙组 我从来没有拿到钥匙 OptionPane
  • 远程最小化机器 VBS 中的发送密钥

    我在 SAP 应用程序的对象中执行 Shift Enter 时遇到问题 这是我的代码 If Dialog SAP Logon 730 WinListView SysListView32 Exist 100 Then Dialog SAP L
  • 为什么我下载文件时有两个请求? [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 目前不接受答案 我有一个提供文件的操作 public override FileContentResult Foo var someDataAsBytes return File someD