You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Fetch API实现PHP后端向前端返回并展示HTML?

问题:Fetch API无法获取PHP返回的HTML内容并展示

原本通过jQuery AJAX实现了PHP后端向前端传递HTML代码的功能,现在改用Fetch API实现相同功能,数据可以成功发送到后端,但无法获取后端返回的HTML内容并展示。

PHP后端代码

if (isset($_POST)) {
  echo '<b>DataToSend</b>';
  // 其他HTML内容
}
return;

原前端Fetch代码

fetch('', {
  method: 'POST',
  body: data,
}).then(function(data){
  document.body.innerHTML = data;
});

问题原因

Fetch API第一个then回调接收的参数是Response对象,并非直接的HTML文本内容,不能直接赋值给innerHTML。需要通过Response对象的text()方法,将响应内容提取为可直接使用的HTML字符串。

修复后的前端代码

fetch('', {
  method: 'POST',
  body: data,
})
.then(function(response) {
  // 将响应转换为文本格式的HTML内容
  return response.text();
})
.then(function(htmlContent) {
  // 将HTML内容插入到页面中
  document.body.innerHTML = htmlContent;
})
.catch(function(error) {
  // 捕获请求过程中的错误(可选)
  console.error('请求失败:', error);
});

额外说明

如果data是自定义键值对对象(而非FormData),需要手动设置请求头的Content-Type,确保后端能正确解析POST数据:

fetch('', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/x-www-form-urlencoded',
  },
  body: new URLSearchParams(data).toString(), // 比如data是{key: 'value'}格式的对象
})
// 后续处理同上...

内容的提问来源于stack exchange,提问作者Example

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 22:45:34