使用jquery ajax在同一请求中上传文件和JSON数据?

我需要将图像文件上传到canvas。 假设canvas已经有对象,那么我必须先抓住json,上传图像,然后重新加载页面。 问题是,我不能将上传的图像文件与json数据一起发送到同一个ajax请求中。 这是我的代码:

 
... (other input tags)
$('#upload').bind("click",function(event) { event.preventDefault(); var json = JSON.stringify(canvas.toDatalessObject()); var url = "upload.php"; var data = new FormData($('#myform')[0]); var dataString = JSON.stringify(data.serializeObject()); $.post(url, { json: json, data: dataString }, 'json'); });

虽然我得到的json数据很好,但表单数据只是空的。 还有其他更好的解决方案吗?

去掉

 var dataString = JSON.stringify(data.serializeObject()); 

,它已经是Json,

并尝试设置ajax属性:

  processData: false, contentType: false,