我正在尝试为我的表单输入数据分配一个变量,该数据是 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, ' ').replace(/\n/g, '<br />');
$('#results').html(pretty);
}
});
});
</script>
</body>
</html>