在Javascript中获取TinyUrl

时间:2013-06-30 21:31:48

标签: javascript

function ShortUrl(bigurl)
{
$.getJSON(
  "http://tinyurl.com/api-create.php",
   url: 'http://dfsghdsvfbjvjd.com',
  function(data){
   alert(data);
  });
}

不工作

$['getJSON']('http://tinyurl.com/api-create.php?url=http://xxxxxxx.com/', function (a) {
                         h = a;
alert (h);

                     });

此调用也无效。 试过各种电话,但没有得到微小的声音。

3 个答案:

答案 0 :(得分:4)

您使用的API不是将缩短的URL作为JSON返回,而是以纯文本形式返回。并且无法通过AJAX调用从另一个域(此处为tinyurl)提取纯文本数据。请参阅same origin policy

如果您只想缩短URL客户端,bit.ly有一个支持JSONP的API。

$.getJSON('http://api.bitly.com/v3/shorten?callback=?',
    {
        format: "json",
        apiKey: YOUR_API_KEY,
        login: YOUR_LOGIN,
        longUrl: "http://link.to.be/shortened"
    },
    function(response) {
        console.log(response.data.url);
    }
);

答案 1 :(得分:1)

您不需要$.getJSON这个api链接,例如:http://tinyurl.com/api-create.php?url=google.com。因为它以短文本形式返回短网址。

所以,我认为这就够了:

$.get("http://tinyurl.com/api-create.php?url=google.com", function(shorturl){
    alert(shorturl)
});

请参阅:http://api.jquery.com/jQuery.get/

答案 2 :(得分:0)

直接在浏览器中调用TinyUrl API会导致您出现CORS问题,一种解决方法是使用cors-wherewhere服务。我通常使用tinyurl-client npm软件包来缩短浏览器中的url,这是使用方法

  1. 将其安装在终端中
npm install @kulkul/tinyurl-client
  1. 在您的javascript上使用它
import shortenUrl from "@kulkul/tinyurl-client";

shortenUrl("https://kulkul.tech").then((result) => {
    console.log({ result }); // https://tinyurl.com/<slug>
});

P.S。我是npm软件包的创建者,如果您有任何问题,可以在此处https://github.com/kulkultech/tinyurl-client

发布