0

我正在尝试为我的表单输入数据分配一个变量,该数据是 json 格式和 url 编码的。至少这就是我认为我正在用 jquery 做的事情:serializeArray() 和 param()。这是我得到的错误代码:https ://api.smartystreets.com/street-address/?auth-token=0123456789&callback=jQuery#Failed to load resource:服务器响应状态为 400(一些提交的街道地址请求不完整。)

我的主要问题是:如何将用户输入从表单获取到变量,然后将其放入 ajax 调用中?当我使用:

data: {
                    'auth-token': '0123456789',      
                    'street': '1600 Amphitheatre Parkway',
                    'city': 'Mountain View',
                    'state': 'CA',
                    'zipCode': '94043',
                    'candidates': 1
                },

代替:

data: $.param(myData),

我得到了 json 响应,否则我得到了提到的错误代码。

编码:

 <pre id="results"></pre>
     <form action="" name="address" method="post" id="address">
          Street Address
          <input type="textbox" id="street_add" name="street_add">
          <br />
          City
          <input type="textbox"  id="city" name="city">
          <br />
          State
          <input type="textbox" id="state" name="state">
          <br />
          Zipcode
          <input type="textbox"  id="zipcode" name="zipcode">
          <br />
          <input type="submit" name="submit" value="send" />
     </form>
    <script>
    var myData = $("form #address").serializeArray();
        $(function() {
            $.ajax({
                url: 'https://api.smartystreets.com/street-address/?auth-token=0123456789',
                dataType: 'JSONP',  // NOTE: This is what allows the cross-domain ajax call.
                data: $.param(myData),
                success: function (data, status, xhr) {
                    var pretty = JSON.stringify(data, null, 4).replace(/ /g, '&nbsp;').replace(/\n/g, '<br />');
                    $('#results').html(pretty);
                }
            });
        });
    </script>
</body>
</html>
4

1 回答 1

0

序列化表单数据所需的只是:

var myData = $("form#address").serialize();

然后在.ajax函数中:

 data: myData,

http://api.jquery.com/serialize/

于 2013-09-25T01:02:15.273 回答