使用 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 仅用于演示目的。
<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>