我使用CakePHP进行开发,最初认为这个问题与Cake相关;事实并非如此。我重写了这个问题,以便我得到更广泛适用的答案
我有一张表格
<form action"">
<fieldset>
<!---- bunch of fields----->
<input type="file" name="data[Upload][file]" id="UploadFile">
<button id="ajaxUploadSubmit"> Submit </button>
</fieldset>
</form>
我写的提交函数如下:
$( "#ajaxUploadSubmit" ).click(function() {
$.ajax({
url:"uploads/add",
data: $( "#UploadsAddForm" ).serialize()
}).done(function(responseText) {
alert(responseText);
})
.fail(function() {
alert('failxors');
})
});
但是这一行返回一个空数组:$this->request->data
。
答案 0 :(得分:0)
我认为你没有停止提交表格:
$( "#ajaxUploadSubmit" ).click(function(e) {
e.preventDefault();
而不是click
尝试submit
:
尝试改变这一点:
$( "#ajaxUploadSubmit" ).click(function() {
到这一个:
$(".form").submit(function(e) {
e.preventDefault();
答案 1 :(得分:0)
我只是添加了这个答案,所以这个问题可以标记为已回答;实际上thaJeztah在Jai的回答的第3条评论中回答了这个问题:在这种情况下,问题是我应该使用FormData()而不是Serialize(),如下所示: how to do file upload using jquery serialization