我有一个使用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对象。最初,我以为如果将contentType
指定为application/json
,则ajax
函数会将data
转换为JSON格式。但是,服务器上的简单打印显示情况并非如此。 contentType
字段仅负责设置Content-Type
标头。默认情况下,无论给定的url-encoded
参数如何,JQuery总是将普通的Javacript对象转换为dataType
格式。
作为一种解决方法,我使用JSON.stringify(data)
将javascript对象序列化为JSON字符串。但是,我想知道是否有更好的做法来使用ajax
函数。如果要使用JQuery以JSON格式发布javascript,怎么办?