我有一个表单,我使用jquery序列化函数通过ajax提交表单
serialized = $(Forms).serialize();
$.ajax({
type : "POST",
cache : false,
url : "blah",
data : serialized,
success: function(data) {
}
但是,如果表单有一个<input type="file">
field....how,我是否应该使用这种ajax序列化将文件传递到表单中呢? method...printing $_FILES不会输出任何内容
发布于 2010-12-28 17:43:45
无法使用AJAX上载文件,因为您无法访问存储在客户端计算机上的文件内容,也无法使用javascript在请求中发送该文件。实现这一点的技术之一是使用隐藏的iframe。有一个很好的jquery form plugin,它允许你AJAXify你的表单和它的supports file uploads。所以使用这个插件,你的代码看起来就像这样:
$(function() {
$('#ifoftheform').ajaxForm(function(result) {
alert('the form was successfully processed');
});
});
该插件自动负责订阅表单的submit
事件、取消默认提交、序列化值、使用正确的方法和处理文件上传域……
发布于 2015-02-04 06:07:55
使用FormData
object.It适用于任何类型的表单
$(document).on("submit", "form", function(event)
{
event.preventDefault();
$.ajax({
url: $(this).attr("action"),
type: $(this).attr("method"),
dataType: "JSON",
data: new FormData(this),
processData: false,
contentType: false,
success: function (data, status)
{
},
error: function (xhr, desc, err)
{
}
});
});
发布于 2018-01-20 21:28:41
var form = $('#job-request-form')[0];
var formData = new FormData(form);
event.preventDefault();
$.ajax({
url: "/send_resume/", // the endpoint
type: "POST", // http method
processData: false,
contentType: false,
data: formData,
它对我起作用了!只需设置processData和contentType为False即可。
https://stackoverflow.com/questions/4545081
复制相似问题