下面是我提出帖子请求的代码:
function post(path, params, method) {
method = method || "post"; // Set method to post by default if not specified.
// The rest of this code assumes you are not using a library.
// It can be made less wordy if you use one.
var form = document.createElement("form");
form.setAttribute("method", method);
form.setAttribute("action", path);
form.setAttribute("enctype", "application/json");
for(var key in params) {
if(params.hasOwnProperty(key)) {
var hiddenField = document.createElement("input");
hiddenField.setAttribute("type", "hidden");
hiddenField.setAttribute("name", key);
hiddenField.setAttribute("value", params[key]);
form.appendChild(hiddenField);
}
}
document.body.appendChild(form);
form.submit();
}我试图将header中的Content-type设置为"application/json“,方法是将表单的enctype设置为"application/json”。但是,它不起作用。
我看到了一个关于支持enctype的"application/json“的enctype,但是它似乎还没有被接受。
有没有人想过如何在不诉诸AJAX的情况下发出POST请求并使用JSON而不是formdata作为数据格式?
发布于 2015-08-11 06:51:43
有没有人想过如何在不诉诸AJAX的情况下发出POST请求并使用JSON而不是格式数据作为数据格式?
没有办法做到这一点。关于作为表单编码类型的JSON的工作已被放弃。
如果您正在编写期望正常表单提交的HTTP端点,请编写它,以便它接受application/x-www-form-urlencoded和multipart/form-data编码的数据。
这些是表单提交的浏览器支持的唯一编码类型。 (不适用于机器处理的text/plain除外)。
发送JSON有效负载的唯一方法是使用Ajax,您拒绝它作为一个选项。
https://stackoverflow.com/questions/31934999
复制相似问题