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

JQuery Ajax POST请求:请求体为JSON、响应为HTML是否正确?

你的jQuery Ajax POST请求写法有小问题,我帮你修正下~

首先先给你说对的地方:

  • 你把dataType设为'html'是完全正确的,这个参数是告诉jQuery服务器返回的响应格式是HTML,它会正确解析并传给success回调,然后你把响应HTML插入到#content里的逻辑也没问题。

但这段代码有个关键的遗漏,会导致服务器无法正确解析你的JSON请求体:
你用JSON.stringify(barsJSON)把数据转成了JSON字符串,但没有设置请求头的Content-Type为application/json。jQuery默认的Content-Type是application/x-www-form-urlencoded; charset=UTF-8,服务器收到这个请求头时,会按照表单数据的格式去解析请求体,而不是JSON格式,这样服务器就拿不到你传的正确数据了。

所以修正后的代码应该加上contentType: 'application/json'这个配置项:

$.ajax({
  url: '/foo',
  type: 'post',
  dataType: 'html',
  contentType: 'application/json', // 关键新增配置
  data: JSON.stringify(barsJSON),
  success: function (responseHTML) {
    $('#content').html(responseHTML);
  }
});

另外补充个小细节:如果你的项目里用的是jQuery 3.0及以上版本,也可以用更简洁的$.post写法(本质和上面一样):

$.post({
  url: '/foo',
  dataType: 'html',
  contentType: 'application/json',
  data: JSON.stringify(barsJSON)
})
.done(function(responseHTML) {
  $('#content').html(responseHTML);
});

这样调整后,服务器就能正确识别请求体是JSON格式,同时也能正确处理返回的HTML响应啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:24:02