【问题标题】:Ajax request to JSON not working?对 JSON 的 Ajax 请求不起作用?
【发布时间】:2012-08-10 19:29:22
【问题描述】:

我正在尝试从提供 JSON 响应的 API 中获取一些数据。我对这一切都是全新的。有人可以查看我的代码并告诉我是否有语法原因它不起作用?我想点击按钮并弹出一个警报,其中包含从请求发回的数据。我认为这是你能做的最基本的编程事情,但我似乎无法让它发挥作用。

<head>

<script type="text/javascript">
$.ajax({
    type: 'GET',
    url: 'http://openapi.etsy.com/v2/teams/8787?api_key=********&fields=name',
    async: false,
    jsonpCallback: 'jsonCallback',
    contentType: "application/json",
    dataType: 'jsonp',
    success: function(data)
    {
        alert(data)
    }
})
</script>

</head>
<body>
<button onClick="$.ajax()">Run Code</button>
</body>
</html>

【问题讨论】:

    标签: javascript jquery ajax json api


    【解决方案1】:

    我重写了你的代码:

    <head>
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.8.0.min.js"></script>
    <script type="text/javascript">
    
    function doStuff() {
        $.ajax({
            type: 'GET',
            url: 'http://openapi.etsy.com/v2/teams/8787?api_key=********&fields=name',
            async: false,
            jsonpCallback: 'jsonCallback',
            contentType: "application/json",
            dataType: 'jsonp',
            success: function(data)
            {
                alert(data)
            }
        });
    }
    </script>
    
    </head>
    <body>
    <button onClick="doStuff()">Run Code</button>
    </body>
    </html>
    

    【讨论】:

    • 谢谢,我认为浏览器应该以某种方式知道它...... ;)
    • 浏览器仍然来自那里,它们没有阅读创建网站的开发人员的思想;)无论如何,它现在应该可以工作了。 +1
    • 这显示带有此“});”的行上的错误我无法弄清楚,我已经检查并仔细检查了所有花括号和括号似乎都正确关闭。当我点击按钮时,我也无法让它做任何事情。
    • 我已经更新了代码(第二行缺少结束脚本标记)。
    • 好的,我修复了这个错误,但是当我点击按钮时仍然无法弹出警报。
    【解决方案2】:

    使用 id 以不显眼的方式通过 jQuery 将事件处理程序添加到 button

    <head>
    
    
    </head>
    <body>
    <button id="button">Run Code</button>
    
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
    <script type="text/javascript">
    $('#button').click(function(e){e.preventDefault();
    $.ajax({
        type: 'GET',
        url: 'http://openapi.etsy.com/v2/teams/8787?api_key=********&fields=name',
        async: false,
        jsonpCallback: 'jsonCallback',
        contentType: "application/json",
        dataType: 'jsonp',
        success: function(data)
        {
            alert(data)
        }
    })
    });
    </script>
    </body>
    </html>
    

    【讨论】:

    • OP 也忘了加载 jQuery ;)
    • 好的,我试过了,但是当我点击“运行代码”时没有任何反应。
    【解决方案3】:

    是的,有几个问题:

    1. 您正在使用 jQuery,但您没有加载它。
    2. 您尝试在页面加载时调用该调用。
    3. onclick 事件处理程序尝试错误地调用 $.ajax() 调用(它没有任何参数)。

    大概就这些了。

    【讨论】:

    • Meder in the answer 解决了我提到的问题。它应该可以工作。
    猜你喜欢
    • 2014-05-12
    • 2016-03-15
    • 1970-01-01
    • 1970-01-01
    • 2014-01-07
    • 1970-01-01
    • 2014-11-13
    • 2015-12-21
    • 2012-11-28
    相关资源
    最近更新 更多