需要从 axios 请求中检索 html

Need to retrieve html from axios request

我正在使用 axios 向在后端公开 html 的资源发送请求。当我发送 GET 请求时,我收到一个对象作为响应。当我使用 console.log() 打印响应时,由于响应是一个对象而不是我期望的 html,它会破坏 React 应用程序。

目前我正在尝试在配置中指定 responseType: 'document'。但这似乎不起作用。我仍然得到一个对象,错误是:

"Error: Objects are not valid as a React child (found: [object Promise]). If you meant to render a collection of children, use an array instead."

最终我需要得到一个可以嵌入我的 React 页面的 <div></div>

import axios from 'axios';

const examplePage = "example.com/example"

export const requestExamplePage = async () => {
    const {data} = await axios.get(examplePage, {responseType: 'document})
    
    return data
}

错误:

"Error: Objects are not valid as a React child (found: [object Promise]). If you meant to render a collection of children, use an array instead."

实际上意味着您正在尝试做出承诺。您确定那是解构请求的正确方法吗? data 必须是用双引号(字符串)包裹的 html 并且您还需要 dangerouslySetInnerHtml 将其注入 div.

试试这个:

export const requestExamplePage = async () => {
    const {data} = await axios.get(examplePage, {responseType: 'document'})
    
    return (
        <div dangerouslySetInnerHTML={{ __html: data }} />
    )
}

确保数据是一个实际的 html 字符串。