首页 > 解决方案 > Azure 存储 Javascript 库“createBlobServiceWithSas”引发错误:拒绝设置不安全的标头“用户代理”

问题描述

使用 Azure 存储 JS 客户端库上传图像会引发错误:“拒绝设置不安全的标头“用户代理””

网络选项卡中的所有请求都是 200 或 201,看起来 xhr 请求正在工作。是否可以在 post call 之前不设置此标头或将其过滤掉?我想在控制台中避免这个错误。 https://github.com/Azure/azure-storage-node#azure-storage-javascript-client-library-for-browsers

标签: javascriptazureazure-blob-storage

解决方案


已经测试了您提到的链接中的示例azurestoragejs-2.9.100-preview,它不会导致我这边出现错误(Chrome 和 Firefox)。

打开azure-storage.blob.jslib 文件,搜索变量var unsafeHeaders并检查是否user-agent在其列表中。我在我身边看到了它,并在删除它后重现了您的问题。所以它可能在您的文件中丢失。

如果你的库没有损坏,你可以忽略这个“错误”,因为没有任何问题,而且它都是由存储库和浏览器实现的。

解释:

当 http 请求执行时,此库中的方法将确保unsafeHeaders列表中的标头不会由xhr. 如果没有,浏览器会抛出如您所见的警告,因为这是xhr 标准的要求。

请参阅此库中的注释。

此检查不是必需的,但它可以防止浏览器发出有关设置不安全标头的警告。老实说,我不完全确定隐藏这些警告是一件好事,但 http-browserify 做到了,所以我也会这样做。

Everyting 确实对您有用,可能已经证明支票是not necessary. 同样在xhr 标准中,user-agent不再是一个不安全的标头,但浏览器没有赶上。


推荐阅读