AJAX从聪明的街道API返回

时间:2017-02-23 06:21:33

标签: jquery html ajax

我在使用此AJAX调用实际返回任何类型的对象时遇到问题。我知道我做错了什么,但我不知道在哪里。我希望有人可以帮助我,我希望在对象“zip”中返回一个元素。我想真的有任何回应,但我无法得到任何回报。

QByteArray ba("SGVsbG9XQ1Q=");
for(int i=ba.length()-1; i>=0 && ba[i]=='='; i--)
    ba[i] = '|';

2 个答案:

答案 0 :(得分:1)

当您使用GET调用时,您可以先在浏览器中对此进行测试,并确保在开始将其包装到JQuery调用中之前获得响应。

https://us-street.api.smartystreets.com/street-address?auth-id=[your-auth-id]&auth-token=[your-auth-token]&street=SOMETHING&state=SOMETHING&city=SOMETHING

如果您得到非结果,请咨询API以查看您是否传递了正确的参数。

使用DOCS,此调用会返回API密钥的数据 -

https://us-street.api.smartystreets.com/street-address?auth-id=[your-auth-id]&auth-token=[your-auth-token]&street=1600+amphitheatre+pkwy&city=mountain+view&state=CA&candidates=10

此JQuery Get HTML示例获得响应 -

<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
    $("button").click(function(){
        $.get("https://us-street.api.smartystreets.com/street-address?auth-id=[your-auth-id]&auth-token=[your-auth-token]&street=1600+amphitheatre+pkwy&city=mountain+view&state=CA&candidates=10", function(data, status){
            alert("zipcode: " + JSON.stringify(data));
        });
    });
});
</script>
</head>
<body>

<button>Send an HTTP GET request to a page and get the result back</button>

</body>
</html>

您应该能够在完善JQuery理解的基础上进行构建,以获得您所需的内容。

答案 1 :(得分:0)

我能够在您的代码中找到一些错误,并在this JSFiddle中修复它们。以下是您遇到的错误列表。

  1. 不要在公共代码中包含您的auth-id,auth-token。通过这样做,您可以放弃地址查找。您应该从帐户中删除这些内容并生成新帐户。

  2. 在您原来的success函数中,您没有进行比较。你应该在这里使用==。实际上,API永远不会为成功数据发回null,所以你甚至不再需要这个。请改用error功能。

  3. 在ajax调用中传递的数据对象未正确完成。您不应该使用=,而是使用:

  4. 在数据对象中,您应该在jQuery选择器之后调用.val()以获取在这些字段中输入的值。

  5. data.components[0].zipcode应为data[0].components.zipcode。 api将返回一个对象的数据数组。 components不是数组。