这是html表格
$("form#create").submit(function(e) {
var formData = new FormData()($(this)[0]);
$.ajax({
type: 'POST',
url: 'create.php',
data: formData,
cache: false,
contentType: false,
processData: false
}).done(function(data) {
var dataParsed = JSON.parse(data);
if (!dataParsed.success) {
alert("Done");
}
else {
alert.success("Error");
$("#create").trigger("reset");
}
});
e.preventDefault();
});
这是AJAX查询,我的表单包含数据和文件集。
cell.mChat = _mChats[indexPath.section];
所以,我收到了请求而不是帖子。为什么呢?
答案 0 :(得分:1)
您在代码中结尾处阻止事件。它应该在 的开始。强>
$("form#create").submit(function(e) {
e.preventDefault();//it should be at the beginning
var formData = new FormData()($(this)[0]);
$.ajax({
type: 'POST',
url: 'create.php',
data: formData,
cache: false,
contentType: false,
processData: false
}).done(function(data) {
var dataParsed = JSON.parse(data);
if (!dataParsed.success) {
alert("Done");
}
else {
alert.success("Error");
$("#create").trigger("reset");
}
});
});
答案 1 :(得分:0)
在提交表单时,您需要在表单标记中提供method="post"
。
<html>
<head>
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.js"/>
</head>
<body>
<form id="create" enctype="multipart/form-data" method="post">
<input class="form-control" name='header' type="text" placeholder="Header" >
<input type="file" name="upload[]" multiple/>
<div class="button_wrap">
<button class="btn btn-success" name="create" type="submit"> Save </button>
</div>
</form>
<script>
$("form#create").submit(function(e) {
var formData = new FormData()($(this)[0]);
$.ajax({
type: 'POST',
url: 'create',
data: formData,
cache: false,
contentType: false,
processData: false,
dataType: 'multipart/form-data'
}).done(function(data) {
var dataParsed = JSON.parse(data);
if (!dataParsed.success) {
alert("Done");
}
else {
alert.success("Error");
$("#create").trigger("reset");
}
});
e.preventDefault();
});
</script>
</body>
</html>