首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过Jquery Ajax调用创建TinyURL

通过Jquery Ajax调用创建TinyURL
EN

Stack Overflow用户
提问于 2009-09-12 03:04:09
回答 6查看 4.4K关注 0票数 2

我已经在SO上看过类似的问题,但似乎找不到一个解决看似简单的呼叫的问题。

代码语言:javascript
复制
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,它没有显示返回的响应。我遗漏了什么?

EN

回答 6

Stack Overflow用户

发布于 2009-10-13 04:53:39

由于same origin policy的限制,尝试发出常规AJAX请求是不可能的。幸运的是,Remy Sharp提供了一个JSONP API

以下是工作代码:

代码语言:javascript
复制
function TweetThis(bigurl)
{
    $.getJSON(
      "http://json-tinyurl.appspot.com/?&callback=?",
      {url: bigurl},
      function(data){
       alert(data.tinyurl);
      }
    );
}
票数 4
EN

Stack Overflow用户

发布于 2012-03-22 00:59:10

我从未用过它,但也许值得一试。http://tiny-url.info/open_api.html

如果您能够向服务器端添加逻辑,则可以通过安装"shim“或网关脚本来避免对JSONP的要求,该脚本可以执行您想要的操作,并返回格式化的JSON字符串。

一些通过调用tinyurl.com的API来生成tinyurls的脚本示例:

  • PHP.
  • ASP classic
  • ASPNET Handler (ASHX) in C#
  • Python/CGI

任何人都可以将这些代码放在自己的主机上,以允许网页访问tinyurl服务。同样的方法也适用于任何不能通过JSONP访问的服务。

票数 2
EN

Stack Overflow用户

发布于 2009-09-12 03:12:13

在Safari4 (Mac )中,它工作得很好。

在Firefox3 (Mac )中,它只起了一半的作用--出现了一个alert对话框,但它是空的(所以success正在触发,但没有数据返回)。

这看起来像是Firefox的一个bug。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1414145

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档