我已经在SO上看过类似的问题,但似乎找不到一个解决看似简单的呼叫的问题。
function TweetThis(url)
{
$.ajax({
url: "http://tinyurl.com/api-create.php?url=" + url,
cache: false,
success: function(data){
alert(data);
}
});
}基本上,我想通过一个Ajax调用和一个长URL调用TinyURL,并返回缩短的URL..成功不会触发,但当我检查它构建的URL时,它在浏览器中返回得很好。
查看Firebug,它没有显示返回的响应。我遗漏了什么?
发布于 2009-10-13 04:53:39
由于same origin policy的限制,尝试发出常规AJAX请求是不可能的。幸运的是,Remy Sharp提供了一个JSONP API。
以下是工作代码:
function TweetThis(bigurl)
{
$.getJSON(
"http://json-tinyurl.appspot.com/?&callback=?",
{url: bigurl},
function(data){
alert(data.tinyurl);
}
);
}发布于 2012-03-22 00:59:10
我从未用过它,但也许值得一试。http://tiny-url.info/open_api.html
如果您能够向服务器端添加逻辑,则可以通过安装"shim“或网关脚本来避免对JSONP的要求,该脚本可以执行您想要的操作,并返回格式化的JSON字符串。
一些通过调用tinyurl.com的API来生成tinyurls的脚本示例:
任何人都可以将这些代码放在自己的主机上,以允许网页访问tinyurl服务。同样的方法也适用于任何不能通过JSONP访问的服务。
发布于 2009-09-12 03:12:13
在Safari4 (Mac )中,它工作得很好。
在Firefox3 (Mac )中,它只起了一半的作用--出现了一个alert对话框,但它是空的(所以success正在触发,但没有数据返回)。
这看起来像是Firefox的一个bug。
https://stackoverflow.com/questions/1414145
复制相似问题