ajax提交数据至控制器,如何使用ajax提交表单并上传文件到弹簧控制器?

博客内容涉及通过Ajax提交包含文件的表单到Spring MVC控制器,以实现异步文件上传,并期望返回JSON响应。作者遇到了404错误,可能由于URL路径不正确或未配置相应的控制器方法。在尝试中,他们使用jQuery的Ajax方法,设置data属性为JSON格式的表单数据,但服务器接收到的数据为空。
摘要由CSDN通过智能技术生成

我有一个表单,其中包含四个字段,文件,名称,类型(只是一个字符串)和taskInstanceId。如何使用ajax提交表单并上传文件到弹簧控制器?

Document Type:

Document Name:

Choose a file:

如果我提交这个表单,它将连接到我的FileUploadController并且文件将被上传。

@RequestMapping(value = "/formTask.do", method = RequestMethod.POST)

public ModelAndView handleFormTaskUpload(@RequestParam("name") String name,

@RequestParam("type") String type,

@RequestParam("file") MultipartFile file,

@RequestParam("taskInstanceId") int taskInstanceId)...//rest of the code

现在我想使用jQuery/JSON而不是提交此表,这样我可以表明这个页面上的返回一个字符串,指示上传成功,然后显示一个对话框。 (我不想返回一个新的ModelAndView)。

因此,使用相同的HTML表单创建一个新的控制器功能...

@RequestMapping(value = "/formTask2.json", method = RequestMethod.POST)

public String handleFormTaskUpload2(UploadTaskDocument myNewUpload)).../rest of the code

现在我想提交上述使用jQuery形式。我的尝试在这里。

每次更改文件时都会调用此函数。

function prepareUpload(event)

{

files = event.target.files;

}

而且这个在表单提交时被调用。

function uploadFiles(event)

{

event.stopPropagation(); // Stop stuff happening

event.preventDefault(); // Totally stop stuff happening

var data;

data = {

documentName: $("#documentName").val(),

documentType: $("#documentType").val(),

taskInstanceId: selectedTaskInstanceId,

uploadedfiles: files

};

var json = JSON.stringify(data);

$.ajax({

url: '/SafeSiteLive/formTask2.json',

type: 'POST',

data: json,

cache: false,

dataType: 'json',

processData: false, // Don't process the files

contentType: false, // Set content type to false as jQuery will tell the server its a query string request

success: function (data, textStatus, jqXHR)

{

if (typeof data.error === 'undefined')

{

// Success so call function to process the form

//submitForm(event, data);

}

else

{

// Handle errors here

console.log('ERRORS: ' + data.error);

}

},

error: function (jqXHR, textStatus, errorThrown)

{

// Handle errors here

console.log('ERRORS: ' + textStatus);

// STOP LOADING SPINNER

}

});

}

它发布之前JSON数据看起来像这样...

oC1yc.png

但是,一旦它到达服务器一切都是空...

gXO6W.png

2015-06-24

OneTwo

+1

是的,看起来还好,除了在'jQuery.ajax'通话的研制成功情况下,你'submitForm'。不知道“submitForm”的作用是什么,但它不能再提交表单了,因为你已经用ajax请求发送了数据。在成功案例中,如果处理了表单数据并且您已从服务器获得成功响应,则调用应执行的操作。 –

+0

忽略这一点,我只是没有编码的阶段呢。 我现在遇到的问题是,当我尝试提交ajax时出现404错误,我不知道为什么? –

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值