似乎无法设置窗体';s编码类型。(Javascript)

似乎无法设置窗体';s编码类型。(Javascript),javascript,json,Javascript,Json,我正在尝试使用编码类型“application/JSON”硬连线一个即时创建的表单来发送JSON 在jQuery中,我会在$.ajax或$.post中将其设置为“contentType”——但是由于某些原因,我需要手动执行此操作 我有下面的代码,但它就是不工作。它仍然默认enctype为application/x-www-form-urlencoded data = data; var form = document.createElement("FORM"); form.style.displ

我正在尝试使用编码类型“
application/JSON
”硬连线一个即时创建的表单来发送JSON

在jQuery中,我会在
$.ajax
$.post
中将其设置为“
contentType
”——但是由于某些原因,我需要手动执行此操作

我有下面的代码,但它就是不工作。它仍然默认enctype为
application/x-www-form-urlencoded

data = data;
var form = document.createElement("FORM");
form.style.display = "none";
form.action = url;
form.setAttribute('enctype', 'application/json');
form.method = "post";

我是试图设置错误的属性,还是只是设置错误?有什么想法吗?

我认为
表单
无法做到这一点

您需要在服务器端执行此操作。或者,如果您必须在发送之前在客户端执行此操作(不推荐),请查看。

您应该查看


编辑-我没有注意到您希望表单将数据编码为JSON…这不会发生。使用AJAX或ProcessIT服务器端并以JSON返回响应。

不确定“application/JSON”是否支持作为有效的enctype。根据HTML401规范:

W3C用户代理必须支持下面列出的内容类型(application/x-www-form-urlencoded,multipart/form data)。未指定其他内容类型的行为

因此,我想,对这一点的支持取决于浏览器供应商


如果你想模仿jQuery和其他javascript库的工作方式,那么你将使用一个而不是一个表单元素,你不需要告诉服务器当你这样做时你将发送什么类型的内容,服务器将(正确地)假设您使用的是application/x-www-form-urlencoded。

我认为您应该使用

enctype=“multipart/form data”

-这是截至2014年3月3日的非官方W3C草案。我还没有看到它实际实现。
form.enctype = enctype;