上传 jQuery ajax 带额外数据对象
upload jQuery ajax w/ extra data object
使用答案from here我可以成功上传图片到php。
$(document).ready(function (e) {
$('#imageUploadForm').on('submit',(function(e) {
e.preventDefault();
var formData = new FormData(this);
$.ajax({
type:'POST',
url: $(this).attr('action'),
data:formData, // << i would like to send more object variables
cache:false,
contentType: false,
processData: false,
success:function(data){
console.log("success");
console.log(data);
},
error: function(data){
console.log("error");
console.log(data);
}
});
}));
$("#ImageBrowse").on("change", function() {
$("#imageUploadForm").submit();
});
});
问题: 使用这个,我如何发送额外的 post 数据对象到 php?
通常我可以发送像 var dataObj = {a1:a1,a2:a2}
这样的数据对象,这将替换上面的 formData
。
但是由于 formData
占据了 data
条目,我似乎无法附加更多$_POST
反对 PHP。
您可以使用 append()
将更多数据附加到 formData
对象
$('#imageUploadForm').on('submit',(function(e) {
e.preventDefault();
var formData = new FormData(this);
formData.append('key', 'value');
$.ajax({
...
});
}));
使用答案from here我可以成功上传图片到php。
$(document).ready(function (e) {
$('#imageUploadForm').on('submit',(function(e) {
e.preventDefault();
var formData = new FormData(this);
$.ajax({
type:'POST',
url: $(this).attr('action'),
data:formData, // << i would like to send more object variables
cache:false,
contentType: false,
processData: false,
success:function(data){
console.log("success");
console.log(data);
},
error: function(data){
console.log("error");
console.log(data);
}
});
}));
$("#ImageBrowse").on("change", function() {
$("#imageUploadForm").submit();
});
});
问题: 使用这个,我如何发送额外的 post 数据对象到 php?
通常我可以发送像 var dataObj = {a1:a1,a2:a2}
这样的数据对象,这将替换上面的 formData
。
但是由于 formData
占据了 data
条目,我似乎无法附加更多$_POST
反对 PHP。
您可以使用 append()
formData
对象
$('#imageUploadForm').on('submit',(function(e) {
e.preventDefault();
var formData = new FormData(this);
formData.append('key', 'value');
$.ajax({
...
});
}));