0

我有一小段代码,它基本上发出请求,并将结果抛出console.log(我省略了我的密钥和签名)。

问题是它似乎从来没有提出请求。

感谢您的帮助,我是新手,我还在学习中。

//alert('you clicked on the discgolf button');
$('#zipsubmit').click(function(){
    dgZipSearch();     // call this function perform DGCR search and 
                          populate the page with results
});

function dgZipSearch(){

    alert('foo1');

    $.ajax({
        url:'http://www.dgcr-api.com/?key=xxxxx&mode=findzip&zip=' + $('#zipcode').val() + '&rad=10&sig=yyyyyyy',
        dataType: 'jsonp',
        success: function(zip_results){
            console.log(zip_results);
        }
    });
    alert('foo2');
};
4

2 回答 2

0

根据文档,API 仅以 JSON 格式响应,除非您明确指定out参数为XML.

因此不需要dataType为ajax请求指定属性,jQuery会根据响应的MIME类型智能猜测正确的数据类型。

更改请求,例如

$.ajax({
    url:'http://www.dgcr-api.com/?key=xxxxx&mode=findzip&zip=' + $('#zipcode').val() + '&rad=10&sig=yyyyyyy',
    success: function(zip_results){
        console.log(zip_results);
    }
});

并尝试。

对于错误检查,您需要实现错误回调函数。此外,API 提供了特定的响应代码以方便错误处理。

于 2012-10-10T08:20:51.053 回答
0

您也可以尝试删除 url 中的“/”。更改后的 url 可能如下所示

http://www.dgcr-api.com?key=xxxxx&mode=findzip&.....

试试上面的网址(观察我在 www.dgcr-api.com 之后删除的“/”)

还有一件事是,ajax 调用有跨域调用等限制。所以请检查下面链接中的“crossDomain”属性。

http://api.jquery.com/jQuery.ajax/

于 2012-10-10T05:01:51.063 回答