TinyURL JavaScript API会触发错误

时间:2011-10-26 20:14:16

标签: javascript tinyurl

我在我的一个Web应用程序中使用TinyURL API。到目前为止,它工作正常,但今天发生错误,我不知道为什么:自9月以来我没有修改我的脚本!

以下是我使用的代码:

function getTinyURL(longURL, success)
{
    var API = 'http://json-tinyurl.appspot.com/?url=',
        URL = API + encodeURIComponent(longURL) + '&callback=?';
    $.getJSON(URL, function(data){
        success && success(data);
    });                  
}

var url='http://[...]'; //A very long URL            
getTinyURL(url, function(data)
{
    if(data.tinyurl)
    {
        $('#link').text(data.tinyurl);
        $('#link').attr('href',encodeURI(data.tinyurl));
    }
    else
    {
        $('#link').text('An error occurs...');
        console.log('ERROR: '+data.error);
        $('#link').attr('href','#');
    }
});

正如我已经说过的,即使此代码之前运行良好,今天也会发生错误。在控制台日志中,将显示以下消息: API调用urlfetch.Fetch()需要的配额多于可用配额。

我不明白这个消息:这是否意味着错误来自TinyURL? 我应该更改我的代码还是应该等待TinyURL针对此错误做些什么?

提前致谢!

1 个答案:

答案 0 :(得分:0)

json-appspot服务背后的魔力并不是特别复杂。

如果您能够向服务器端添加逻辑,则可以为自己制作和运行类似的东西。您需要安装连接到tinyurl.com的“填充程序”或网关脚本,并返回格式化的JSON字符串。

一些例子:

他们做同样的事情。使用其中任何一个,你可以将它放在你的服务器上,然后在jQuery中从你的页面中调用它:

var stub = "http://myserver.example.com/api/tinyurlshim.asp?url=",
    urlToEncode = "http://example.com/very/long/url/to/encode?with=query&params=too",
    url = stub + encodeURIComponent(urlToEncode);

$.getJSON(url, function(data) { alert('response: ' + data.tiny);} );