微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么 Apache Sling 会阻止浏览器请求

如何解决为什么 Apache Sling 会阻止浏览器请求

我正在编写一个小工具,它允许我们从浏览器将文件存储在 JCR 中。代码很简单:

const jsonData = new Blob([JSON.stringify({ test: "test" })],{ type: 'application/json' });
const formData = new FormData();
formData.append(`file.json`,jsonData,`file.json`);

return fetch('/content/test/_jcr_content/my-data',{
  method: 'POST',credentials: 'include',body: formData,});

但是当我在浏览器中发出此请求时,请求失败并显示 403 状态。我做了一些挖掘,似乎当我将 User-Agent 标头更改为不包含 Mozilla 的字符串时,请求成功。

现在,这将是一个简单的解决方案,但遗憾的是 Chrome 浏览器不允许覆盖 User-Agent 标头。

我进行了一些挖掘,并在 Sling AuthUtil class that checks whether the request is a browser request.

中找到了一个方法 isbrowserRequest

但是,我找不到可以启用浏览器请求的位置。

有谁知道为什么浏览器请求被阻止,以及我们如何配置 Apache Sling 以允许它们?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。