当前位置: 首页 > 知识库问答 >
问题:

javascript - 如何在wangeditor中插入需要请求头的图片?

沈皓君
2024-07-09

wangeditor插入图片时,拼接了下载接口。但是下载接口需要请求头,因此导致图片无法插入,请问有什么解决办法吗

                customInsert: (insertImg, result, editor) => {
                    insertImg(process.env.VUE_APP_BASE_API + '/file/dwn2?fileName=' + result[0])})

尝试过用下载到本地获取blob地址,但是仍然无法展示

共有2个答案

锺离逸春
2024-07-09

这里文档翻一下看看,有相关配置的。

https://www.wangeditor.com/v4/pages/07-%E4%B8%8A%E4%BC%A0%E5%...

丌官和泰
2024-07-09

在 WangEditor 中,如果你需要在插入图片时通过自定义接口(且该接口需要特定的请求头)来加载图片,你需要进行额外的处理。以下是一个可能的解决方案,它涉及到使用 fetch API 或其他 HTTP 客户端(如 axios)来发送带有请求头的请求,并将返回的图片数据转换为 Blob 对象,再插入到 WangEditor 中。

这里是一个使用 fetch 和 Blob 的例子:

customInsert: (insertImgFn, result, editor) => {
    // 假设 result[0] 是你需要的文件名或其他参数
    const fileName = result[0];
    const apiUrl = process.env.VUE_APP_BASE_API + '/file/dwn2?fileName=' + fileName;

    // 使用 fetch 发送请求,并带上需要的请求头
    fetch(apiUrl, {
        method: 'GET', // 或者 'POST',取决于你的API要求
        headers: {
            // 在这里添加你的请求头
            'Authorization': 'Bearer your_token', // 示例,根据你的API要求调整
            // ... 其他请求头
        },
    })
    .then(response => {
        if (!response.ok) {
            throw new Error('Failed to fetch image');
        }
        return response.blob(); // 获取 Blob 对象
    })
    .then(blob => {
        // 创建一个 URL 对象,指向该 Blob 对象
        const objectUrl = URL.createObjectURL(blob);
        // 使用 WangEditor 的 insertImgFn 插入图片
        insertImgFn(objectUrl);
    })
    .catch(error => {
        // 处理错误
        console.error('Error fetching image:', error);
    });
}

注意,在上面的代码中,我使用了 fetchblob() 方法来确保获取到的是 Blob 对象,然后使用 URL.createObjectURL() 方法来创建一个可以在 HTML 中直接使用的 URL。这个 URL 可以被 WangEditor 的 insertImgFn 函数用来插入图片。

另外,请确保你的服务器支持跨域资源共享(CORS),并且允许你的前端代码所在的域来访问图片资源。

如果你正在使用 axios 或其他 HTTP 客户端,你可以按照类似的方式发送带有请求头的请求,并处理返回的响应数据。只需要确保最终你能获取到一个 Blob 对象,并将其转换为可以在 WangEditor 中使用的 URL。

 类似资料:
  • websocket请求头中如何带上cookie?

  • 问题内容: 在使用XMLHttpRequest进行AJAX调用时,似乎无法从JavaScript更改大多数请求标头。请注意,必须在Gecko浏览器中调用when。设置_Referer时_ ,它没有设置(我查看了使用Firebug和Tamper Data发送的请求标头)。当我设置User-Agent时,它完全搞砸了AJAX调用。但是,设置接受和_内容类型_确实可以。我们是否无法在Firefox 3中

  • 问题内容: 有一个第三方应用程序需要通过自定义的HTTP标头获取信息,因此我编写了一个简单的测试应用程序,该应用程序创建了此标头,然后重定向到列出所有标头的页面。 生成标头的servlet片段为: 另一方面,来自header.jsp的相关代码是: 显示以下标题: 好像从未插入过自定义标头。我该如何解决? 谢谢 问题答案: 通过 重定向, 您基本上是在指示客户端(网络浏览器)触发全新的HTTP请求。

  • 我正在使用RestTemplate方法将请求发布到endpoint。我在不同的文件中有和,我想把它们传递给POST请求,除此之外,我还想把传递给endpoint。 我能够成功地传递头和请求,但不能传递包含凭据的Http实体 有没有办法让我三样东西都及格 > HttpHeader 要求 这是我的密码 以下代码位于NewHttpHeader中。包含和

  • 问题内容: 我有以下声明: 我需要为role_id 101-355生成一行(因此,与上述相同的语句,除了随着role_id递增而重复)。最好的方法是什么?为了完成这项工作,我打算编写一个快速的C#应用​​程序,该应用程序将有一个循环,但是我确信这不是最好的方法,希望在这里学习一些东西,以免将来不得不这样做(因为我确保这种情况很常见)。 问题答案: 您应该使用数字表,如果没有数字表,可以这样使用:

  • 我正在构建一个Java的grpc服务器,我很难得到请求头。proto文件是使用Pro buf-maven-plugin编译的,基于生成的存根,我无法访问上下文或请求元数据。 我还尝试在消息请求中定义一个键/值列表,希望grpc能够处理头映射,但目前为止没有成功。 知道我怎么能拿到标题吗? 谢谢 我的原型文件内容: 服务器端实现如下所示: 版本请求。getHeadersCount()始终返回0,尽管

  • Symfony中的默认CSRF预防是基于表单的(如果使用提供的表单生成器,则会自动发生)。然而,对于AJAX请求,手动将CSRF令牌附加到每个HTTP请求,然后手动检查每个请求,这是非常繁琐的。 一个好的方法是将令牌嵌入为HTTP标头,如本问题的注释中建议的那样。jQuery然后可以被配置为在每个请求中包含这个标头,如这里所述。 我的问题是如何在Symfony内最好地处理这个问题?我可以使用Twi

  • 我正在尝试使用JQuery在Ajax中向请求添加头。 以下是代码:- 然后我使用了要求(要求是chrome火狐插件,我们可以手动添加一个标题到请求)。 手动添加标题后:- 在这两个pics请求头中,“ACCESS-CONTROL-request-HEADERS”中都有x-auth-token,但第二个pic中有“x-auth-token”头和头值,而第一个pic中没有。 所以我的问题是如何使用JQ