问题标签 [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.

0 投票
1 回答
1234 浏览

jquery - JavaScript FormData 对象未通过 jQuery 发送

我有以下 HTML 表单:

我有以下 jQuery 代码(注意 $ml 等于默认 $):

不使用FormData,只是手动传递它的工作形式信息 - 除了我有一个file类型input。如果没有 AJAX,表单可以正常工作,使用 AJAX 我需要FormData传递文件。我已经在网上搜索并找到了一些东西,但没有一个有效。

发送时开发者控制台显示以下内容:

调试信息

0 投票
2 回答
6679 浏览

asp.net - 如何使用 asp.net WebMethod 处理 FormData AJAX 帖子(带有附加参数的文件)

在将 FormData 的 jQuery AJAX 发布到 ASP.net 4 Web 服务 WebMethod 时遇到问题。





不能正确处理 FormData 对象参数;在这里我实例化了一个自定义类,但我从服务器返回的只是 500 个错误(也尝试了一个通用对象 x)。正如我在一些帖子中看到的那样,还尝试将其作为 HttpRequest 对象处理,但无济于事。在这种情况下不关心 IE 9 不兼容;只想查看单个文件上传或至少一个 FormData 对象,其中键/值对被 asmx WebMethod 正确接收。

0 投票
0 回答
329 浏览

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 大小和实际文件大小匹配。

下面是一个人为的例子。我希望它有助于复制我正在讨论的内容。如果没有,请告诉我,我会将工作副本上传到我的个人服务器,以便您进行测试。

扩展选项卡

主选项卡

后端

0 投票
1 回答
52 浏览

xmlhttprequest - XMLhttprequest 中的备用域?

我有一些用于异步上传文件的代码-效果很好:



问题是如果我想发布到备用域(即:www.server2.com/upload.php)它不起作用。只有当我发布到脚本所在的同一个域时,它才有效。

0 投票
1 回答
220 浏览

forms - 查找表单数据的类型

所以我什至不知道该怎么说。我正在尝试使用 JSON 模式验证表单数据。我使用 Dojo 创建表单并在用户单击提交时获取其内容。但是,表单中的所有数据都以字符串形式返回。因此,当我的模式找到一个应该是数字的字段时,它会引发错误,因为即使输入是“123”,它在技术上也是一个字符串。有没有办法在保留原始类型的同时获取表单数据?

有任何想法吗?

0 投票
1 回答
15201 浏览

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”变量,并将二进制文件作为另一个变量上传?

0 投票
1 回答
1423 浏览

jquery - JQuery Ajax 上传文件

我知道这是关于 Ajax 文件上传(图像)的一个话题。但我必须实现一个 Ajax 文件上传器,但我主要关心的是浏览器兼容性,我的代码需要跨 IE 7 + Firefox + Chrome + Safari + 移动浏览器工作。我知道问题主要出在 IE 7 上,但我现在关心的另一个问题是移动浏览器。

由于不兼容,我想远离 html5,因为我相信这只适用于 Firefox、Chrome 和 Safari

以下 html 代码将作为输入:

如您所见,这也将使用表单数据。谁能给我一个正确的方向推动表单上传(没有 i-frames)或者让我知道这是否可能跨平台,包括 IE

0 投票
0 回答
97 浏览

javascript - 检查表单数据的最佳方法

我必须使用 Ajax 上传文件。

我的问题是我需要使用 FormData 并且需要检查浏览器的兼容性。

检查这个的最好方法是什么?

是通过执行以下操作:

还是有更好更可靠的检查方法?

0 投票
1 回答
4374 浏览

angularjs - 支持 IE8 的 angularjs 的 CORS 文件上传

我正在寻找一种使用 CORS 将小文件上传到 REST API 的简单轻量级方法。我正在使用以下插件: angular-file-upload

问题是它对不支持 formData 对象(例如 IE 8 和 IE 9)的已弃用浏览器使用 swf 回退。

我已经在 github 上打开了一个关于这个问题的问题,但到目前为止还没有运气。

这意味着我无法在这些浏览器上使用 CORS 上传文件,这是我不能允许的(许多用户仍在使用 IE)。

0 投票
2 回答
653 浏览

javascript - 以编程方式将数据发送到 iframe

我目前正在添加一个备份 jquery 函数来替换 FormData 以支持 ie 9 及以下版本。但是我遇到了这篇文章: jQuery iframe file upload

我可以看到这是用于上传我需要的文件,但我的表单中有很多字段。有没有一种方法可以在不使用 formData 的情况下以编程方式获取表单中的所有文本字段。

我看过使用它,但它会获取所有输入字段但没有 textarea 字段,并且它将包含图像。

还是有更好的方法来做到这一点?我真的不想触摸 formData,因为这适用于所有其他浏览器,但我已经包含了代码

来检测和使用另一个功能。

编辑:

刚刚尝试了以下方法:

但它不会更新 iframe

编辑:

这是我用来上传表单的完整代码(希望如此)

编辑:添加形式:

表格的其余大部分是根据先前选择的选项生成的,因此很难发布该代码