2012-08-10 135 views
0

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

<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> 

回答

2

我重写代码:

<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> 
+0

由于缺乏jQuery,仍然无法工作。 – Tadeck 2012-08-10 19:37:49

+0

谢谢,我认为浏览器应该知道它......;) – Vlad 2012-08-10 19:40:43

+0

浏览器仍然是这样,他们没有阅读创建网站的开发人员的头脑;)无论如何,它现在应该工作。 +1 – Tadeck 2012-08-10 19:41:49

2

与jQuery悄悄地添加事件处理程序,以button使用id

<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> 
+0

OP也忘了加载jQuery;) – Tadeck 2012-08-10 19:37:01

+1

是的,我刚刚补充说。 – 2012-08-10 19:37:24

+0

好,所以+1从我身边 – Tadeck 2012-08-10 19:38:44

1

是的,有几个问题:

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

这可能是全部。

+0

Meder in [the answer](http://stackoverflow.com/a/11908137/548696)解决了我提到的问题。它应该工作。 – Tadeck 2012-08-10 19:40:25