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

2023-12-25

我正在尝试使用 jQuery Ajax 发送 POST 请求,我想在其中上传文件和一些 json 数据。请查找代码,

var logoImg = $('input[name="logoImg"]').get(0).files[0];
var formData = new FormData();
formData.append('logo', logoImg);

var objArr = [];
objArr.push({
  "id": id,
  "name": userName
});

var obj = [{
  "objArr": objArr,
  "formData": formData
}];

$.ajax({
  type: "POST",
  url: url,
  dataType: "json",
  data: JSON.stringify(obj),
  contentType: "application/json",
  cache: false,
  async: false,
  complete: function(data) {
    alert("success");
  }
});

但我越来越Internal server error: 500并且不调用后端API。

请帮助我在同一 AJAX 请求中发送文件和数组对象。提前致谢


您无法序列化在请求中发送的任何二进制数据。

发送附加信息FormData对象,只需使用append()添加它的方法,类似于使用图像本身的方式:

var logoImg = $('input[name="logoImg"]').get(0).files[0];
var formData = new FormData();
formData.append('logo', logoImg);
formData.append('id', id);
formData.append('name', userName);

$.ajax({
  type: "POST",
  url: url,
  data: formData,
  contentType: false,
  processData: false,
  cache: false,
  complete: function(data) {
    alert("success");
  }
});

注意选项中重要的部分是设置contentType and processData to false,并删除async: false以便请求异步发生。

最后,请注意,如果您要在请求中发送的输入全部包含在同一个表单中,您可以使用FormData构造函数将代码简化为:

var formData = new FormData($('#yourForm')[0]);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 jquery ajax 在同一 POST 请求中上传文件和 JSON 数据? 的相关文章

  • 如何在jquery中获取保存时间和当前时间的差异?

    我想在 javascript 或 jquery 中获取保存时间和当前时间之间的时差 我节省的时间看起来像Sun Oct 24 15 55 56 GMT 05 30 2010 java中的日期格式代码如下 String newDate 201
  • :jQuery / Sizzle 中的 nth-of-type()?

    让我惊讶的是Sizzle http sizzlejs com jQuery 使用的选择器引擎 带有一个内置的 nth child 选择器 但缺少 nth of type 选择器 为了说明之间的区别 nth child and nth of
  • 数据表日期范围过滤器

    如何添加日期范围过滤器 like From To 我开始进行常规搜索和分页等工作 但我不知道如何制作日期范围过滤器 我正在使用数据表 1 10 11 版本 My code var oTable function callFilesTable
  • 单击引导分页链接时调用 jquery 函数

    我想在单击引导分页链接时调用 jquery 函数 假设我想从第1页遍历到第2页 应该调用一个jquery函数 我正在使用以下代码 但它不起作用 ul pagination on click li function alert page ch
  • 使用异步调用时如何从 javascript 更新元刷新?

    我有一个系统 它使用元刷新来注销页面 该系统会在空闲用户后进行清理 不用担心 服务器也会导致会话超时 我开始通过 ajax 进行一些操作 不是真正的 xml 但这不是重点 我可以运行从异步请求返回的javascript 所以我想知道是否可以
  • jquery-ui 1.9.1 ui-draggable 不适用于 ie9 和 ie10

    我在 IE 9 和 10 中无法使 draggable 工作 主要使用的 javascript 包有 jquery ui 1 9 1 min js 和 jquery 1 8 2 min js 代码基本上是这样的 creation texts
  • jquery:焦点到 div 不起作用

    ajax功能结束后 在成功消息中 我关注特定的 div 但这不起作用 我的代码在这里 j ajax url type POST data action press release page 0 do task do task id id m
  • XHR 不起作用,因为“Access-Control-Allow-Origin 不允许来源”

    我正在使用 Rails 3 开发一个 API 服务器 到目前为止 它非常方便 但我一直遇到错误 我不确定这是因为我的 Apache 设置还是 Rails 应用程序 当我尝试执行 HTTP DELETE 或 PUT 请求时http sampl
  • 使用 Javascript/JQuery 的 JSON 对象的差异

    我在 Javascript 中有两个 JSON 对象 除了数值之外 它们都是相同的 它看起来像这样 var data eth0 Tx 4136675 Rx 13232319 eth1 Tx 4 Rx 0 lo Tx 471290 Rx 47
  • 仅在第一次访问页面时显示 jQuery 弹出窗口

    我是新来的jQuery http en wikipedia org wiki JQuery 我的网站上有一些需求 我想仅在用户到来时才第一次显示 jQuery div 弹出窗口 无需一次又一次地展示 我仍然在使用这个 但我不知道第二次如何隐
  • 在 Web 浏览器中查找触发 then 事件的 jQuery 代码

    我加入了一个团队来从事一个项目 现在他们使用 jQuery 并且很多 javascript 文件都是外部文件而不是嵌入的 当我点击一个按钮时 它看起来就像 a class button cancel Cancel a 它触发一个在一个 ja
  • 调用“DOMNodeInserted”事件时添加元素

    我想在每个 喜欢 按钮 chrome 扩展 之后添加一个元素 由于帖子被添加到新闻提要而不刷新页面 我必须添加一个事件侦听器 DOMNodeInserted 但是当我尝试把after 里面的功能 它不起作用 Code contentArea
  • 在jqGrid中查找当前页码

    如何在 jqGrid 中找到当前页码 当然使用 jQuery 另外我怎么知道总共有多少页 这应该可以做到 sp 1 text total pages ui pg input val current page Edit 我发现了一个更好的方法
  • 如何在jquery.repeater中仅在slideUp完成后执行下一个代码

    这是原始代码 this slideUp deleteElement itemRemove 上面的代码在 SlideUp 完成之前调用 itemRemove 所以我使用了如下回调函数 this slideUp deleteElement fu
  • 将 div 设置为 post 方法结果页面的目标容器

    我有一个 div 标签 也分为两个 div 这是代码 div div div div
  • jQuery .val() 返回单选按钮的未定义

    我正在尝试获取 jQuery 中选中的单选按钮值 但它返回的值是 未定义 我搜索了这个问题的解决方案 但对我来说没有任何作用 我的 HTML 代码
  • 客户端应用程序立即对数据库中的更新做出反应的最佳方式是什么?

    对数据库中的数据更新做出立即反应的最佳方法是什么 我能立即想到的最简单的方法是一个线程 它检查数据库中某些数据的特定更改 并持续等待在某个预定义的时间长度内再次检查它 这个解决方案对我来说似乎是浪费和次优的 所以我想知道是否有更好的方法 我
  • 将杂散文本包裹在 div 中

    如何选择 任何没有包含标签的内容 来在 jQuery 中添加包装器 前任 div class post div class whatever This should remain untouched div I want to wrap t
  • 如何使 jQuery 向上动画

    我有一些 jquery 运行得相当好 但是当我将鼠标悬停在有问题的元素上时 底部向下扩展 这并不意外 但不是所需的效果 我希望元素的底部保持静止 而元素的顶部向上扩展 如果您想查看我目前拥有的内容 您可以导航至http demo ivann
  • Jquery,清除/清空 tbody 元素的所有内容?

    我认为这会相当简单 但似乎空方法无法清除我拥有的 tbody 如果有人知道执行此操作的正确方法 我将不胜感激 我只想删除 tbody 中包含的所有内容 到目前为止我正在尝试 tbodyid empty HTML table tbody tr

随机推荐

  • 将 CMS 与现有 ASP.NET 网站集成

    我正在尝试将 CMS 集成到使用 ASP NET 构建的现有网站中 aspx文件和 aspx cs文件背后的代码 未编译 我的研究表明 我的最佳候选者是 N2 CMS 我理想的方法是使用各种可编辑内容类型配置编辑器 并让我现有的页面和用户控
  • 如何正确使用 Django 中的“choices”字段选项

    我正在这里阅读教程 https docs djangoproject com en 1 5 ref models fields choices https docs djangoproject com en 1 5 ref models f
  • gpuDevice() 工具包版本始终为 5.5

    无论我如何重新安装CUDA驱动程序和工具包 当输入gpuDevice 时 它总是显示 CUDADevice with properties Name Quadro K2000M Index 1 ComputeCapability 3 0 S
  • 删除/清空的 Graphite Whisper 文件自动重新生成

    我试图删除一些旧的石墨测试耳语指标 但没有成功 我可以通过删除文件来删除指标 看 如何清理石墨耳语的数据 https stackoverflow com questions 9587161 how to cleanup the graphi
  • 如何使用 Gitlab 设置代码审查?

    如何使用 Gitlab 设置代码审查 我看到它在 Gitlab 网站上被列为一项功能 但我似乎找不到有关如何设置该功能的说明 就这一点而言 任何指向 Gitlab 用户手册的链接将不胜感激 我的一些搜索表明 合并请求 是可行的方法 但我发现
  • 从命令行启动 AVD 时卡在“撤销 Google 应用程序的麦克风权限”上

    我正在运行命令来启动 AVD 但是 当设备启动时 卡在这个错误上 撤销 Google 应用的麦克风权限 有什么线索吗 我正在使用 AVD 设备 API 28 运行这些命令时出现同样的错误 Users username Library And
  • 了解 WCF

    谁能给我指出一个用图片和简单代码片段解释 WCF 的资源 我厌倦了在所有搜索结果中进行谷歌搜索并找到相同的 ABC 文章 WCF 是一项非常复杂的技术 在我看来 它的文档记录非常少 它的启动和运行非常容易 但是运行大型应用程序的性能调整可能
  • 如何使用 dalli 和 Rails 将内存缓存板大小增加到 1MB 以上?

    我正在使用 Ruby on Rails 和 dalli gem 通过 memcache 进行缓存 默认值 键值存储中的值 又名slab 最大大小为1MB 我想将其增加到 2MB dalli 的文档 https stackoverflow c
  • 无法找到名为“entityManagerFactory”的 bean

    我的应用程序无法启动 它由 Spring Boot JPA SQLite 组成 但 Spring Boot 和 MySQL 运行良好 我不明白为什么会发生这种情况 错误是 无法找到名为 entityManagerFactory 的 bean
  • Stripe 在 Python 中不会抛出充电错误

    我正在使用 Python 中的 stripe 库进行信用卡收费 我使用 customerID 来收费 而不是使用令牌 因为我想重复使用该卡 而无需每次都询问 成功过程运行得很好 但是 如果我创建错误条件 则永远不会抛出 例外 我正在使用无效
  • Javascript document.cookie 总是返回空字符串

    我在客户端 javascript 设置 cookie 时遇到了这个真正奇怪的问题 我目前正在开发一个小型的 1 页演示 以使用 cookie 来存储一些 首选项 请注意 我无法在此演示中使用服务器端语言或任何第 3 方 jQuery 插件
  • 尝试使用 python 3 加载 JSON 对象时出错

    我有以下 json 对象 我试图用 python 3 解析 customerData Joe visits 1 Carol visits 2 Howard visits 3 Carrie visits 4 我使用以下 python 代码来解
  • 等待任务.Delay(foo);需要几秒而不是毫秒

    使用可变延迟Task Delay当与类似 IO 的操作结合时 随机花费几秒而不是几毫秒 重现代码 using System using System Collections Generic using System Diagnostics
  • React-js 忽略标签的 'for' 属性

    我知道对于 class 我们必须使用 className 但是我如何做出反应以保留 for 属性 下列
  • 在循环中定义匿名函数(包括循环变量)?

    我知道这段代码不起作用 我也知道为什么 但是 我不知道如何解决它 JavaScript var function id return document getElementById id document addEventListener
  • 如何从我的网站邀请 Facebook 的朋友 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • SQL Server 2008 R2(.Net 2.0 应用程序)中的死锁问题

    所讨论的 Sql Server 2008 R2 实例是一个重负载 OLTP 生产服务器 几天前出现了僵局问题 但仍未解决 我们收到了 Xml 死锁报告 其中列出了死锁涉及的存储过程以及其他一些详细信息 我将首先尝试列出此 xml 中的事实
  • iOS 开发者版本与发行版版本

    一段时间以来 我一直有这样的印象 对于 iOS 使用开发人员配置文件签署构建允许应用程序通过 XCode 构建在授权设备 在开发配置文件中列出 上运行 并进行调试 而使用分发配置文件签名允许应用程序在其他 iOS 设备上运行 但不能调试 这
  • 在 PhoneGap 1.2.0 中使用 Google Analytics 时 Android 和 iOS 之间的差异

    我一直在尝试让 Google Analytics 在 Android 和 iOS 上的 PhoneGap 1 2 0 中工作 在 PhoneGap 1 2 0 中使用 Google Analytics 时 Android 和 iOS 之间的
  • 使用 jquery ajax 在同一 POST 请求中上传文件和 JSON 数据?

    我正在尝试使用 jQuery Ajax 发送 POST 请求 我想在其中上传文件和一些 json 数据 请查找代码 var logoImg input name logoImg get 0 files 0 var formData new