将“enctype”属性设置为“application / json”

时间:2015-08-11 06:50:11

标签: jquery http html-form-post

这是我发出POST请求的代码:

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();
}

我尝试通过将表单的Content-type设置为“application / json”将HTTP标头中的enctype设置为“application / json”。但是,它不起作用。

我看到一个unofficial draft关于支持enctype的“application / json”,但似乎还没有被接受..

有没有人有关于如何发出POST请求并使用JSON而不是formdata作为数据格式而不诉诸AJAX的想法?

1 个答案:

答案 0 :(得分:2)

  

有没有人有关于如何发出POST请求并使用JSON而不是formdata作为数据格式而不诉诸AJAX的想法?

目前的浏览器无法做到这一点。

如果您正在编写需要正常表单提交的HTTP端点,请将其写入以便接受application/x-www-form-urlencodedmultipart/form-data编码数据。