当前位置: 首页 > 面试题库 >

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

卢嘉誉
2023-03-14
问题内容

我需要将图像文件上传到画布。假设画布已经有对象,那么我必须首先获取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');  
});

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


问题答案:

去掉

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

,已经是杰森,

并尝试设置ajax属性:

    processData: false,
    contentType: false,


 类似资料:
  • 我需要将图像文件上传到画布。假设画布已经有对象,那么我必须先抓取json,上传图像,然后重新加载页面。问题是,我无法将上传的图像文件与json数据一起发送到同一个ajax请求中。这是我的代码: 虽然我可以很好地获得json数据,但表单数据是空的。还有其他更好的解决方案吗?

  • 我知道如何创建使用MediaType处理文件的endpoint。MULTIPART\u FORM\u DATA和FormDataParam(“file”)FormDataBodyPart bodyPart,但我想知道是否也可以在该请求中包含JSON数据?类似于: 目前,如果我在以下邮递员请求的“原始”选项卡上添加一些JSON数据,我会得到HTTP 415不支持的媒体类型,这可能是因为我指定我使用多

  • 问题内容: 我在Node.js中使用POST请求上传文件时遇到问题。我必须使用模块来完成该操作(无需外部npms)。服务器需要它是包含文件数据字段的多部分请求。看起来很容易,但不使用任何外部模块就很难在Node.js中完成。 我尝试使用此示例,但未成功: 问题答案: 看起来您已经在使用module了。 在这种情况下,您需要发布的只是使用其功能: 但是,如果您想从文件系统中发布一些现有文件,则可以简

  • 我可以使用将文件上载为 上面的代码运行良好。 现在,我想对同一作业使用。我试着在网上搜索并实现代码。但我无法得到结果。 html代码如下所示: 代码中没有任何形式。如何解决问题?

  • 我有以下请求,我想在nodejs中写一个post请求: POST /rest-api/hashDb/createAndUploadHTTP/1.1 主持人:192.168.101.54 连接:保持活力 内容长度:428 产地:https://192.168.101.54 用户代理:Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36(KH

  • 问题内容: 我正在使用Spring MVC,这是我的方法: 我需要在邮递员和文件中传递会话ID。我怎样才能做到这一点? 问题答案: 在邮递员中,将方法类型设置为 POST 。 然后选择主体->表单数据->输入参数名称(根据您的代码 文件 ) 且右侧旁边值列,会出现 下拉菜单“文本文件” ,选择 文件 。选择您的图像文件并将其发布。 对于其他基于 “文本”的参数 ,您可以像通常使用postman一样