如何在ajax调用中添加文件数据和一些普通数据,即没有形式? 我在我的ajax脚本中的当前情况
{
"results": [
{
"code": 200.0,
"name": "server.example.com",
"status": "Attributes updated.",
"type": "Host"
}
]
}
我找到了解决方案,但这不是我希望它的工作方式
$("body").on("click", "#next-step", function(event){
$("#loader").show();
event.preventDefault();
var file = $("#upload_logo")[0].files[0];
$.ajax({
type: 'POST',
url: 'step-two.php',
data:{
name : "my name",
},
file : {upload_logo : file},
contentType: false,
processData: false,
success: function(response)
{
$("#loader").hide();
alert(response);
}
})
});
它有效,但我的问题是,如果我只想在数据中添加我的文件,我该怎么做?而不是使用FormData()任何替代?
答案 0 :(得分:1)
无法通过ajax上传文件。您可以使用IFrame上传文件,而无需刷新页面。您可以查看更多详细信息here
使用XHR2,支持通过AJAX上传文件。例如。通过 FormData对象,但不幸的是,所有/旧的都不支持 浏览器。
FormData支持从以下桌面浏览器版本开始。 IE 10 +,Firefox 4.0 +,Chrome 7 +,Safari 5 +,Opera 12 +
有关详细信息,请see MDN link
答案 1 :(得分:-2)
Use Form data
var formData = new FormData('form id');
$.ajax({
type: 'post',
async: false,
cache: false,
url: '',
contentType: false,
processData: false,
data: formData,
dataType: 'json',
success: function (response) {
}
});