首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >JSON格式的POST数据

JSON格式的POST数据
EN

Stack Overflow用户
提问于 2009-08-10 16:45:35
回答 3查看 311.3K关注 0票数 91

我有一些数据需要转换为JSON格式,然后使用JavaScript函数进行POST。

代码语言:javascript
复制
<body onload="javascript:document.myform.submit()">
<form action="https://www.test.net/Services/RegistrationService.svc/InviteNewContact" method="post" name="myform">
  <input name="firstName" value="harry" />
  <input name="lastName" value="tester" />
  <input name="toEmail" value="testtest@test.com" />
</form>
</body>

这就是这篇文章现在的样子。我需要它提交的JSON格式的值,并与JavaScript做帖子。

EN

回答 3

Stack Overflow用户

发布于 2012-10-24 03:55:58

不确定您是否想要jQuery。

代码语言:javascript
复制
var form;

form.onsubmit = function (e) {
  // stop the regular form submission
  e.preventDefault();

  // collect the form data while iterating over the inputs
  var data = {};
  for (var i = 0, ii = form.length; i < ii; ++i) {
    var input = form[i];
    if (input.name) {
      data[input.name] = input.value;
    }
  }

  // construct an HTTP request
  var xhr = new XMLHttpRequest();
  xhr.open(form.method, form.action, true);
  xhr.setRequestHeader('Content-Type', 'application/json; charset=UTF-8');

  // send the collected data as JSON
  xhr.send(JSON.stringify(data));

  xhr.onloadend = function () {
    // done
  };
};
票数 178
EN

Stack Overflow用户

发布于 2009-08-10 16:58:10

下面是一个使用jQuery的示例。

代码语言:javascript
复制
 <head>
   <title>Test</title>
   <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
   <script type="text/javascript" src="http://www.json.org/json2.js"></script>
   <script type="text/javascript">
     $(function() {
       var frm = $(document.myform);
       var dat = JSON.stringify(frm.serializeArray());

       alert("I am about to POST this:\n\n" + dat);

       $.post(
         frm.attr("action"),
         dat,
         function(data) {
           alert("Response: " + data);
         }
       );
     });
   </script>
</head>

jQuery serializeArray函数使用表单值创建一个Javascript对象。然后,如果需要,可以使用JSON.stringify将其转换为字符串。你也可以把你的身体卸下来。

票数 29
EN

Stack Overflow用户

发布于 2017-02-23 03:13:45

使用新的FormData对象(和其他ES6对象),您可以将整个表单转换为JSON:

代码语言:javascript
复制
let data = {};
let formdata = new FormData(theform);
for (let tuple of formdata.entries()) data[tuple[0]] = tuple[1];

然后就是xhr.send(JSON.stringify(data));,就像Jan最初的答案一样。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1255948

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档