为什么要在发送POST请求时通过JSON使用FormData?

时间:2020-08-10 20:18:11

标签: javascript json ajax forms

我没有找到这个问题的具体答案。与仅使用application/x-www-form-urlencoded的普通JSON相比,使用FormData或通过application/json进行请求有什么好处吗?例如在Axios请求中?

2 个答案:

答案 0 :(得分:0)

FormData对象可以很简单:

  • 将所有数据编码为<form>
  • 编码文件,而无需手动将其转换为字符串
  • 以常见的服务器端环境(例如PHP)原生支持的格式对数据进行编码(即,将填充$_FILES$_POST)。

都不适用于JSON。

答案 1 :(得分:0)

这取决于服务器接受的内容,通常,如果您正在与API交互,则将通过JSON发送,该JSON通知服务器有关正在发送的数据类型。如果通过表单发送,则content-type(在请求的标题中)将为application/x-www-form-urlencoded

因此需要对服务器进行配置,通常以某种中间件的形式对其进行解析。例如,在express js中,您将具有以下内容,

// used to parse json
app.use(express.json());

app.use(bodyParser.urlencoded({ extended: true })); // support encoded bodies