首页 > 解决方案 > 让 JQuery ajax 发布 JSON 数据的最佳方式是什么?

问题描述

我有一个使用 Python Flask 构建的 HTTP 服务器,它提供一个 API 作为后端,以及一个使用 JQuery ajax 调用 API 的网页。当我发出 POST 请求时,我在服务器站点上遇到了一些解析问题。我的 JQuery POST 如下所示。

$.ajax({
  method: "POST",
  url: "<API endpoint, on same server>",
  data: <a javascript object>, //yes, this is the cause of the problem
  dataType: "json",
  contentType: "application/json"

}).done(func_success).fail(func_error);

请注意,该data字段被赋予了一个 javascript 对象。起初我想如果我指定contentTypeapplication/json,该ajax函数会将其data转换为 JSON 格式。但是,服务器上的简单打印显示情况并非如此。该contentType字段只负责设置Content-Type标题。默认情况下,JQuery 总是将普通的 javacript 对象转换为url-encoded格式,而不管dataType给定的参数如何。

作为一种解决方法,我曾经JSON.stringify(data)将 javascript 对象序列化为 JSON 字符串。但是,我想知道是否有更好的做法来使用ajax函数。如果您要使用 JQuery 以 JSON 格式发布 javascript,您会怎么做?

标签: jqueryjsonajaxflask

解决方案


推荐阅读