Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jquery ajax在同一请求中上载文件和JSON数据?_Javascript_Jquery_Ajax_Json - Fatal编程技术网

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

Javascript 使用jquery ajax在同一请求中上载文件和JSON数据?,javascript,jquery,ajax,json,Javascript,Jquery,Ajax,Json,我需要上传图像文件到画布。假设画布已经有了对象,那么我必须首先获取json,上传图像,然后重新加载页面。问题是,我不能在同一个ajax请求中发送上传的图像文件和json数据。这是我的密码: <canvas id="canvas"></canvas> <form enctype="multipart/form-data" id="myform" method="post" action=""> <input type="file" name="image"

我需要上传图像文件到画布。假设画布已经有了对象,那么我必须首先获取json,上传图像,然后重新加载页面。问题是,我不能在同一个ajax请求中发送上传的图像文件和json数据。这是我的密码:

<canvas id="canvas"></canvas>
<form enctype="multipart/form-data" id="myform" method="post" action="">
<input type="file" name="image" id="image" />
... (other input tags)
<button type="submit" id="upload">Upload</button>
</form>

$('#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');  
});

... (其他输入标签)
上传
$('#upload')。绑定(“单击”,函数(事件){
event.preventDefault();
var json=json.stringify(canvas.toDatalessObject());
var url=“upload.php”;
var数据=新表单数据($('#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,