-1

我无法获取以下数据的提要。我知道我为 ajax 指定数据的方式有问题。以下是我尝试过的:

<script type="text/javascript">
        $(function() {
            $.ajax({
                type:'GET',
                dataType:'jsonp',
                url:'http://api.stackoverflow.com/1.0/tags/?callback=?',
                success:function(data) {
                    alert(data.tags[0].name.length)
                },
                error:function() {
                    alert("Sorry, I can't get the feed");   
                }
            })
        });
    </script>

我收到以下错误:

SyntaxError: 无效标签 [中断此错误]

“总计”:31987,

根据 TJ,我只是得到一个原始 JSON 文件。现在,当我的服务器发送 JSON 请求时,我需要做什么。

4

1 回答 1

4

如果您查看对 的响应http://api.stackoverflow.com/1.0/tags/?callback=foo,您会看到它是 JSON,而不是 JSONP。根据api.stackoverflow.com的文档,您需要添加jsonp查询参数以获取 JSONP:http://api.stackoverflow.com/1.0/tags/?jsonp=foo

对于想要控制回调名称以获得最大可靠性的 jQuery,您可以使用jsonp选项告诉它该参数的名称应该是什么(并且不要将它放在 URL 中,jQuery 会这样做):

$.ajax({
    type:'GET',
    dataType:'jsonp',
    jsonp: "jsonp",
    url:'http://api.stackoverflow.com/1.0/tags/',
    success:function(data) {
        alert(data.tags[0].name.length)
    },
    error:function() {
        alert("Sorry, I can't get the feed");   
    }
});
于 2013-01-27T12:30:26.250 回答