如何检查 Angular 8 中的响应或状态代码以将文件上传到 S3 预签名 URL 并且 statusCode 为 200

2024-01-10

请求上传文件:

// upload file to the pre-signed url
const httpOptions = {
 headers: new HttpHeaders({
 'Content-Disposition': 'attachment;filename=' + file.name + '',
 observe: 'response'
 })
};

this.httpClient.put(preSingedUrl, file, httpOptions)
.subscribe((response: HttpResponse<any>) => {
console.log(response); // it's returning null
});

响应始终为空,但在网络选项卡中状态为 200 OK。

access-control-allow-methods: GET, POST, OPTIONS
access-control-allow-origin: *
content-length: 1207
content-type: application/json
date: Tue, 25 Jun 2019 07:38:06 GMT
status: 200
strict-transport-security: 'max-age=31536000'
x-amz-apigw-id: someid
x-amzn-requestid: someid
x-amzn-trace-id: Root=someid;Sampled=1

如何使用 Angular 8 读取状态 200 OK。


问题在于http选项,这就是为什么您得到响应 null 的原因。

如果您尝试使用观察:“响应”要在订阅中返回响应,您将其错误地作为header.

它应该作为 httpOptions 的属性传递。

为了确认这一点,在下图中,执行httpClient.put()在 类型文件http.d.ts包装内@角度/常见可以看出,其中observe是一个属性。

另外,在类型文件中http.d.ts观察的类型是字符串文字类型。 (有关字符串文字类型的更多信息,请参见此处:https://www.typescriptlang.org/docs/handbook/advanced-types.html#string-literal-types https://www.typescriptlang.org/docs/handbook/advanced-types.html#string-literal-types).

So observe in http选项需要转换为这种类型。

所以改变这个:

// upload file to the pre-signed url
const httpOptions = {
  headers: new HttpHeaders({
    'Content-Disposition': 'attachment;filename=' + file.name + '',
     observe: 'response'
  })
};

对此:

// Custom type for casting
type bodyType = 'body';

// upload file to the pre-signed url
const httpOptions = {
  headers: new HttpHeaders({
    'Content-Disposition': 'attachment;filename=' + file.name + '',
  }),
  observe: <bodyType>'response'
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何检查 Angular 8 中的响应或状态代码以将文件上传到 S3 预签名 URL 并且 statusCode 为 200 的相关文章

随机推荐

  • HTTP/1.0 还在使用吗?

    比如说写一个HTTP服务器 客户端 支持HTTP 1 0有多重要 如今它还在任何地方使用吗 Edit 我不太关心 HTTP 1 0 的有用性 重要性 而是关心它的数量software实际上将其用于现实世界中的非内部 例如 单元测试是内部使用
  • 如何在Python中的段落中加入换行符

    我有一些采用以下格式的文本 r n 1 r n par1 par1 par1 r n r n par1 par1 par1 r n r n 2 r n r n par2 par2 par2 我想做的是将它们连接成段落 以便最终结果是 1 p
  • 如何在 React 组件中使用 @types/redux-form 定义的类型与 Field 和 FieldArray?

    我正在使用 React Redux Redux Form 和 TypeScript 开发应用程序 我正在努力使用包 types redux form 定义的类型 绝对打字 https github com DefinitelyTyped D
  • MailChimp 内容阻止拖放不起作用

    我必须在 MailChimp 服务中编辑现有的自定义模板 其中内容块的拖放功能不起作用 模板有很多嵌套表 因此我联系了他们的支持人员 他们的回复是某些块是嵌套的 可能会导致冲突 为了制作简单的测试用例场景 我删除了大部分代码 样式 只留下一
  • Onclick普通按钮正在提交表单

    SCENARIO 我有一个java带有长表单的 JSP 视图 这工作得很好 我可以通过在任何输入字段中按 Enter 键或使用提交按钮来提交表单 新要求 在一部分中 我必须添加按钮来替换一些
  • WPF System.ComponentModel.Win32Exception(0x80004005):无效的窗口句柄

    我在 WPF 上收到以下错误 我正在使用 MVVM 数据绑定到窗口上的 DataContext CollectionViewSources 视图模型和视图中有太多代码需要发布 但我想知道在哪里可以找到它 因为没有出现行号 该窗口使用 WPF
  • 拒绝浏览器通知权限

    根据规格 https developer mozilla org en US docs Web API Notification requestPermission 您可以提示浏览器允许用户授予或拒绝浏览器通知 一旦用户授予权限 是否也可以
  • 防止负载均衡器在长时间运行期间超时

    我使用 ASP NET MVC 4 接受最大 30 mb 的视频上传 视频上传到网站后 视频就会使用 HttpWebRequest 发布到第三方 Web 服务 向第三方服务的上传必须完成并返回响应 然后我的网站才能向浏览器返回响应 在 Ra
  • 编写我自己的 init 可执行文件

    我想创建自己的 init 并为下雪的周末带来一些 Linux 乐趣 我知道 内核使用 rootfs 启动 并在加载驱动程序和安装磁盘后将流程提供给 sbin init 我下载了ubuntu云镜像并尝试使用kvm直接启动内核 如下所示 kvm
  • Python Pandas:将具有唯一值的行连接起来

    在 Python pandas 中 我有一个大数据框 如下所示 df pd DataFrame a foo bar 3 b foo2 bar2 3 c foo3 bar3 3 d q w e r t y e q2 w2 e2 r2 t2 y
  • NHibernate 2.1 和 Oracle 10g 客户端出现错误

    我需要 NHibernate 2 1 才能与 Oracle 数据库对话 我被要求使用 Oracle 10g 客户端 尝试构建会话工厂时出现以下错误 无法转换类型的对象 Oracle DataAccess Client OracleConne
  • 如何将事件侦听器添加到对象数组

    我有一个对象数组 具体来说easelJS图片 像这样 var imageArray new Array gShape new createjs Shape shape is something imageArray push gShape
  • Cassandra 牺牲了 CAP 定理的哪一部分?为什么?

    有一个很棒的演讲 https github com strangeloop StrangeLoop2013 blob master slides sessions Kingsbury PartitionsForEveryone pdf关于在
  • 使用窗口事件调整画布元素大小

    我正在使用打字稿来绘制画布元素 我想让我的画布元素响应屏幕尺寸 这样我就可以将画布大小与父 div 元素相匹配 我试过用这个删除画布中的大小并在 css 中提供它 但这没有帮助 因为我有两个固定元素 我找到了这个已有 8 年历史的解决方案画
  • 函数组合与函数应用

    谁能给出函数组合的例子吗 这就是函数复合运算符的定义 b gt c gt a gt b gt a gt c f g x gt f g x 这表明它需要两个函数并返回一个函数 但我记得有人用英语表达了逻辑 例如 男孩是人类 gt 阿里是男孩
  • TestNG BeforeMethod 与组

    我想知道 BeforeMethod与组的用法 在http testng org javadoc org testng annotations BeforeMethod html http testng org javadoc org tes
  • 如何在 Mathematica 中为绘图添加阴影

    我想生成如下图所示的图 尽管我可以完成框架 但我不确定如何生成阴影 我想知道在 Mathematica 中对绘图中的某些区域进行着色的一般方法 请帮忙 谢谢 也许您正在寻找RegionPlot RegionPlot 1 x 2 1 y 2
  • UnicodeDecodeError:“utf-8”编解码器无法解码位置 2 中的字节 0xf1:无效的连续字节

    我是一个对使用 Python 进行机器学习感兴趣的新手 所以我从下载了一个数据集https data world nrippner ols regression challenge https data world nrippner ols
  • WCF 托管问题

    您好 我想知道是否有人可以帮助我 我一直在用头撞墙试图解决这个问题 但还没有成功 我在内部网络的远程服务器上的 IIS6 上托管了一个 WCF http systemservices ServiceManagerServices svc h
  • 如何检查 Angular 8 中的响应或状态代码以将文件上传到 S3 预签名 URL 并且 statusCode 为 200

    请求上传文件 upload file to the pre signed url const httpOptions headers new HttpHeaders Content Disposition attachment filena