动态输入到api的ajax调用

时间:2013-09-25 00:41:20

标签: jquery ajax api smartystreets

我正在尝试为表格输入数据分配一个变量,该数据是json格式和url编码的。至少这就是我认为我正在使用jquery:serializeArray()和param()。这是我得到的错误代码:https://api.smartystreets.com/street-address/?auth-token=0123456789&callback=jQuery#Failed加载资源:服务器响应状态为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>

1 个答案:

答案 0 :(得分:0)

您需要序列化表单数据:

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

然后在.ajax函数中:

 data: myData,

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