问题标签 [form-data]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
jquery - JavaScript FormData 对象未通过 jQuery 发送
我有以下 HTML 表单:
我有以下 jQuery 代码(注意 $ml 等于默认 $):
不使用FormData
,只是手动传递它的工作形式信息 - 除了我有一个file
类型input
。如果没有 AJAX,表单可以正常工作,使用 AJAX 我需要FormData
传递文件。我已经在网上搜索并找到了一些东西,但没有一个有效。
发送时开发者控制台显示以下内容:
asp.net - 如何使用 asp.net WebMethod 处理 FormData AJAX 帖子(带有附加参数的文件)
在将 FormData 的 jQuery AJAX 发布到 ASP.net 4 Web 服务 WebMethod 时遇到问题。
不能正确处理 FormData 对象参数;在这里我实例化了一个自定义类,但我从服务器返回的只是 500 个错误(也尝试了一个通用对象 x)。正如我在一些帖子中看到的那样,还尝试将其作为 HttpRequest 对象处理,但无济于事。在这种情况下不关心 IE 9 不兼容;只想查看单个文件上传或至少一个 FormData 对象,其中键/值对被 asmx WebMethod 正确接收。
javascript - Javascript Blob 在 Chrome 28 扩展中损坏
我有一个不适用于 Chrome 28 的扩展程序。我相信有一个关于将 blob 从一个上下文传递到另一个上下文的安全更新。如果是这种情况,我正在尝试验证这一点并找到解决方法。任何帮助将不胜感激。
我在 MDN 中读到,如果对象的类型不是 Blob 或 File 对象,它将被转换为字符串......我认为这就是正在发生的事情。https://developer.mozilla.org/en-US/docs/Web/API/FormData
铬 28
该文件已正确检索并且文件大小正确。当我检查类型、控制台日志、检查原型等时,一切看起来都是正确的。Blob 大小与文件大小相匹配。如果一切都发生在同一个窗口中,服务器接收到的是文件数据。如果是通过扩展,服务器接收到这个字符串“[object Blob]”,请求的实际大小是字符串“[object Blob]”的字节数,而不是文件大小。
铬 23
该文件已正确检索并且文件大小正确。当我检查类型、控制台日志、检查原型等时,一切看起来都是正确的。如果一切都发生在同一个窗口中,服务器接收到的是文件数据。如果是通过扩展程序,一切正常并接收到文件数据。在控制台中检查以及发送到服务器时,blob 大小和实际文件大小匹配。
下面是一个人为的例子。我希望它有助于复制我正在讨论的内容。如果没有,请告诉我,我会将工作副本上传到我的个人服务器,以便您进行测试。
扩展选项卡
主选项卡
后端
xmlhttprequest - XMLhttprequest 中的备用域?
我有一些用于异步上传文件的代码-效果很好:
问题是如果我想发布到备用域(即:www.server2.com/upload.php)它不起作用。只有当我发布到脚本所在的同一个域时,它才有效。
forms - 查找表单数据的类型
所以我什至不知道该怎么说。我正在尝试使用 JSON 模式验证表单数据。我使用 Dojo 创建表单并在用户单击提交时获取其内容。但是,表单中的所有数据都以字符串形式返回。因此,当我的模式找到一个应该是数字的字段时,它会引发错误,因为即使输入是“123”,它在技术上也是一个字符串。有没有办法在保留原始类型的同时获取表单数据?
有任何想法吗?
json - 使用 multipart/form-data 比 JSON + Base64 更好吗?
我有一台服务器,我需要将文件以及一些字段从客户端上传到服务器。我目前一直在使用标准的 multipart/form-data。
然而,我发现使用 multipart/form-data 并不理想。我服务器上的对象可能嵌套了其他对象,因此表示为 JSON 对象,其中嵌入了其他 JSON 对象。
我希望客户端开始使用 JSON 表示形式发出 POST/PUT 请求,就像它在对服务器的 GET 请求中所期望的那样,以 REST-ful 方式。这样我就不必为了使用 multipart/form-data 来展平可能嵌套在 JSON 对象中的几个层的字段。
问题是,JSON 不代表二进制数据。Multipart/form-data 似乎没有办法表示嵌套在其他字段值中的字段。但它确实对文件上传有更好的处理。
我不知道如何设计这个。我是否应该让客户端上传带有以 base64 编码的字段的 JSON,并承受 25% 的打击?或者我是否应该在 Multipart/form-data 请求中将 JSON 对象表示为某种“json”变量,并将二进制文件作为另一个变量上传?
jquery - JQuery Ajax 上传文件
我知道这是关于 Ajax 文件上传(图像)的一个话题。但我必须实现一个 Ajax 文件上传器,但我主要关心的是浏览器兼容性,我的代码需要跨 IE 7 + Firefox + Chrome + Safari + 移动浏览器工作。我知道问题主要出在 IE 7 上,但我现在关心的另一个问题是移动浏览器。
由于不兼容,我想远离 html5,因为我相信这只适用于 Firefox、Chrome 和 Safari
以下 html 代码将作为输入:
如您所见,这也将使用表单数据。谁能给我一个正确的方向推动表单上传(没有 i-frames)或者让我知道这是否可能跨平台,包括 IE
javascript - 检查表单数据的最佳方法
我必须使用 Ajax 上传文件。
我的问题是我需要使用 FormData 并且需要检查浏览器的兼容性。
检查这个的最好方法是什么?
是通过执行以下操作:
还是有更好更可靠的检查方法?
angularjs - 支持 IE8 的 angularjs 的 CORS 文件上传
我正在寻找一种使用 CORS 将小文件上传到 REST API 的简单轻量级方法。我正在使用以下插件: angular-file-upload
问题是它对不支持 formData 对象(例如 IE 8 和 IE 9)的已弃用浏览器使用 swf 回退。
我已经在 github 上打开了一个关于这个问题的问题,但到目前为止还没有运气。
这意味着我无法在这些浏览器上使用 CORS 上传文件,这是我不能允许的(许多用户仍在使用 IE)。
javascript - 以编程方式将数据发送到 iframe
我目前正在添加一个备份 jquery 函数来替换 FormData 以支持 ie 9 及以下版本。但是我遇到了这篇文章: jQuery iframe file upload
我可以看到这是用于上传我需要的文件,但我的表单中有很多字段。有没有一种方法可以在不使用 formData 的情况下以编程方式获取表单中的所有文本字段。
我看过使用它,但它会获取所有输入字段但没有 textarea 字段,并且它将包含图像。
还是有更好的方法来做到这一点?我真的不想触摸 formData,因为这适用于所有其他浏览器,但我已经包含了代码
来检测和使用另一个功能。
编辑:
刚刚尝试了以下方法:
但它不会更新 iframe
编辑:
这是我用来上传表单的完整代码(希望如此)
编辑:添加形式:
表格的其余大部分是根据先前选择的选项生成的,因此很难发布该代码