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

如何使用AJAX替换页面标签?执行后页面无变化问题求助

问题解决思路及修正代码

你的问题出在两个关键地方:load()方法的用法错误,以及dataType配置不匹配。

错误分析

  • load()方法用错了:jQuery的load()是用来直接加载某个URL的内容到指定元素里,而不是把已拿到的ajax响应内容塞进去。你已经在success回调里拿到了response,应该用html()方法来替换元素内容。
  • dataType配置不对:你设置了dataType: 'json',但如果后端返回的是你需要的<iframe>HTML片段,这个配置会让jQuery把响应当成JSON解析,反而会出问题(如果返回的是纯HTML,甚至会报错)。如果后端返回的是HTML,要么删掉这个配置,要么改成dataType: 'html'。

修正后的代码

情况1:后端直接返回HTML片段(就是你要的<iframe src="#"></iframe>)

function myVid() {
  $.ajax({
    url: 'my_url_here',
    type: 'GET',
    // 删掉dataType让jQuery自动识别响应类型,或者改成dataType: 'html'
    cache: false,
    success: function(response) {
      console.log(response);
      // 用html()替换元素内容,而非load()
      $('#liveData').html(response);
    }
  });
}

情况2:后端返回JSON(比如{ "content": "<iframe src='#'></iframe>" })

如果后端确实返回JSON,需从JSON里取出HTML内容再替换:

function myVid() {
  $.ajax({
    url: 'my_url_here',
    type: 'GET',
    dataType: 'json', // 此时保留json配置
    cache: false,
    success: function(response) {
      console.log(response);
      // 假设HTML内容存在response.content字段中
      $('#liveData').html(response.content);
    }
  });
}

额外简化写法

如果只是要加载某个URL的HTML到#liveData,其实不用写完整的ajax,直接用load()一步到位:

function myVid() {
  $('#liveData').load('my_url_here');
}

这个写法会自动发起GET请求,把目标URL的内容加载到元素里,比手动写ajax更简洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 03:52:17