使用 fetch() 函数和 Response 对象的示例,创建一个新的 Response 对象来模拟一个自定义响应

在这个示例中,我们首先使用 fetch() 发起一个GET请求到 apiURL。如果响应状态码表示成功(即 response.ok 为 true),我们将响应体转换为JSON。

然后,我们创建一个新的 Response 对象 newResponse,其中包含自定义的JSON字符串和一些自定义的响应头。这个新的 Response 对象具有200状态码和"OK"状态信息。

最后,我们解析这个新的 Response 对象中的JSON数据,并在控制台中打印出来。如果在请求或处理过程中发生错误,我们将在 catch 块中捕获并打印错误信息。

请注意,这个示例中的 newResponse.json() 是为了演示如何使用 Response 对象。在实际应用中,通常不需要手动解析 Response 对象中的JSON,因为 fetch() 已经为我们处理了这一步。这里的 newResponse 仅用于演示目的。

javascript 复制代码
<html>
    <head>
        <meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
        <title>测试Request()对象发送请求</title>
    </head>
    <body>
        <script>
           const apiUrl='requestTest.php';
           fetch(apiUrl)
           .then(response=>{
            if(!response.ok)
                {
                    throw new Error('network response was not ok');
                }
                return response.json();
           })
           .then(data=>{
                console.log('fetch data:',data);
                const newHeaders=new Headers({
                    'Content-Type':'application/json',
                    'X-Custom-Header':'CustomValue'//设置标头大多用于令牌或加密之类
                });

                const newResponse=new Response(
                    JSON.stringify({message:'Custom response',data:data}),
                    {
                        status:200,
                        statusText:'ok',
                        headers:newHeaders
                    }
                );
                return newResponse.json();
           })
           .then(customData=>{
                console.log(customData);
           })
           .catch(error=>{
                console.log(error);
           })
           
        </script>
    </body>
</html>
相关推荐
用户4099322502123 分钟前
FastAPI的查询白名单和安全沙箱机制如何确保你的API坚不可摧?
前端·后端·github
前端小巷子11 分钟前
深入 npm 模块安装机制
前端·javascript·面试
深职第一突破口喜羊羊1 小时前
记一次electron开发插件市场遇到的问题
javascript·electron
cypking1 小时前
electron中IPC 渲染进程与主进程通信方法解析
前端·javascript·electron
西陵1 小时前
Nx带来极致的前端开发体验——借助playground开发提效
前端·javascript·架构
江城开朗的豌豆2 小时前
Element UI动态组件样式修改小妙招,轻松拿捏!
前端·javascript·vue.js
float_六七2 小时前
JavaScript:现代Web开发的核心动力
开发语言·前端·javascript
zhaoyang03012 小时前
vue3笔记(2)自用
前端·javascript·笔记
UrbanJazzerati3 小时前
JavaScript Promise完整指南
javascript
德育处主任Pro3 小时前
# JsSIP 从入门到实战:构建你的第一个 Web 电话
前端