javascript - 将表单序列化为 json,不使用 ajax

标签 javascript json

我正在尝试自动向某些第三方网站发出请求,该网站没有 API,也没有 Access-control-Allow-Origin。所以不可能使用ajax,我唯一的选择是复制网站的表单并发布它们。

但是在某些表单上,该网站使用带有 JSON 编码的 ajax,并且似乎不接受 url 编码格式的相同数据。

Application/json 不是表单的 encTypeformEncType 属性的可接受值(因此在设置时会被忽略)。我还尝试构建对象并将其序列化在隐藏字段中(将 encType 作为纯文本),但浏览器会忽略没有名称的输入,并且输入名称将击败传递值作为请求内容的技巧。

javascript中有没有办法告诉浏览器在同步发送数据之前将数据编码为json?

最佳答案

您可以将一些 json 放在名称字段中,将其余的放在值字段中,因此当您使用 enctype text/plain 并且浏览器会自动在名称后面添加 = 时,它会形成有效的 json字符串。

HTML 规范规定,文本/普通表单是通过编写名称、然后是 =、然后是值、最后是换行符来创建的。因此,如果您在 = 上拆分 json 并将第一部分作为名称,第二部分作为值,它可能会形成服务器接受的有效字符串。

关于javascript - 将表单序列化为 json,不使用 ajax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25607748/

相关文章:

javascript - 如何使用 ajax 从文件加载 JSON 对象?

c# - 在 ASP.NET 和 C# 中的服务器端使用 JSON

c# - JSON.NET JToken 键是否区分大小写?

javascript - 垃圾邮件机器人会忽略 javascript 吗?

javascript - 文本框我需要使用所有这些方法 onKeyDown、onMouseUp 和 onChange

javascript - 如何从 LocalStorage 读回数据

ios - 如何在 objective-c 中使用来自本地主机的 json 数据?

javascript - Webpack 4 - 动态导入无法设置正确的位置

javascript - 使用生成器异步调用列表中的每个项目

php - 使用 JSON 或 XML 发送 JavaScript 数组?如何将其转换为 XML?