如果用form表单直接提交的话后端可以接收到,开发者工具中返回的FormData是:
但是用new FormData提交就不行,返回的FormData是:
怎样才能让ajax提交的FormData格式与直接提交相同?
html代码是:
发布评论
相关的jquery代码是:
function postComment() {
var formData = new FormData($("#comment-form")[0]);
$.ajax({
method: 'POST',
url: 'https://api.staticman.net/v2/entry/zaaaac/comments/master',
data: formData,
dataType: 'json',
contentType: "application/x-www-form-urlencoded",
cache: false,
processData: false,
success: function(data) {
alert(data);
}
})
}
回答:
貌似是因为
没有name属性?修改如下:
HTML:
发布评论
JavaScript:
function postComment() {
var commentForm = document.getElementById('comment-form');
var formData = new FormData(commentForm);
$.ajax({
method: 'POST',
url: 'https://api.staticman.net/v2/entry/zaaaac/comments/master',
data: formData,
dataType: 'json',
contentType: "application/x-www-form-urlencoded",
cache: false,
processData: false,
success: function(data) {
alert(data);
}
})
}
参考:
回答:
其实格式不用管, 后台能取到就行
回答:
不确定,但是感觉 dataType 和 contentType 这两个属性很可疑,建议去掉,尤其是 dataType