问题描述
我没有找到这个问题的具体答案。与仅使用application/x-www-form-urlencoded
的普通JSON相比,使用FormData或通过application/json
进行请求有什么好处吗?例如在Axios请求中?
解决方法
FormData对象可以很简单:
- 将所有数据编码为
<form>
- 编码文件,而无需手动将其转换为字符串
- 以常见的服务器端环境(例如PHP)原生支持的格式对数据进行编码(即,将填充
$_FILES
和$_POST
)。
都不适用于JSON。
,这取决于服务器接受的内容,通常,如果您正在与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