我正在尝试使用FormData将数据发布到另一个URL,以下代码不起作用
$("form").on("submit", function(e){
e.preventDefault();
var formData = new FormData(this);
//var formData = new FormData($(this)[0]); Tried this
$.post('myphpfile', formData, function(data){alert(data)});
});
但是以下$ .ajax有效
$("form").on("submit", function(e){
e.preventDefault();
var formData = new FormData(this);
$.ajax({
url: "myphpfile",
type: 'POST',
data: formData,
success: function (data) {
alert(data)
},
cache: false,
contentType: false,
processData: false
});
});
我习惯了$ .post,所以相当于$ .post中的上述功能。
答案 0 :(得分:0)
$。post需要字符串或纯对象作为数据参数。 因此,您可以将stringify用作表单数据,如下所示:
$.post('myphpfile', JSON.stringify(formData), function(data){alert(data)});
答案 1 :(得分:0)
如果在$ .post调用之前的某处下面添加一行代码,则您的代码将起作用。请注意,它将影响所有$ .ajax及其速记方法的行为。
$.ajaxSetup({ contentType: false, processData: false });