我如何使用API​​?在AJAX(jQuery)请求中得不到任何回报

时间:2010-09-19 08:20:06

标签: jquery ajax api

我正在弄清楚如何使用tumblr api,但我想我可能做错了

我试过

$.get("http://jiewmeng.tumblr.com/api/read/json?callback=tumblr", function(data) {
    $("body").prepend(data);
});

甚至$ .ajax()

$.ajax({
    type: 'get',
    contentType: 'json',
    url: 'http://jiewmeng.tumblr.com/api/read/json',
    success: function(data) {
        alert(data);
    }
});

我一无所获。但是当我在浏览器中转到url时,我得到了一些东西,错了什么?

3 个答案:

答案 0 :(得分:1)

如果使用匿名回调,则不应为回调函数指定名称。使用callback=?将命名保留给jQuery:

$.getJSON('http://jiewmeng.tumblr.com/api/read/json?callback=?', function(data) {
    alert(data);
});

这样实际的请求看起来像这样:

http://jiewmeng.tumblr.com/api/read/json?callback=jsonp1284885664340

答案 1 :(得分:0)

你的get()调用缺少第二个参数(你的调用参数)。所以,你的电话应该是这样的:

$.get("http://jiewmeng.tumblr.com/api/read/json", {callback:'tumblr'}, function(data) {
  $("body").prepend(data);
});

我测试了它,但它在这里不起作用。我的猜测是调用http://jiewmeng.tumblr.com/api/read/json检查调用是否是一个AJAX请求,如果是这种情况则不返回任何内容。

答案 2 :(得分:0)

Ajax只能在与页面相同的主机上工作,如果你想在不同主机上调用页面(通过ajax)你必须编写php代理,请阅读this article

你也可以将dataType设置为“jsonp”,这将不是通过XHR获取json请求,而是使用脚本标记。