4
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);

                     });

此呼叫也不起作用。尝试了各种调用,但没有得到 tinyurl。

4

3 回答 3

4

您使用的 API 不是以 JSON 形式返回缩短的 URL,而是以纯文本形式返回。并且没有办法通过 AJAX 调用从另一个域(这里是 tinyurl)中提取纯文本数据。见同源政策

如果您只想在客户端缩短 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);
    }
);
于 2013-06-30T21:47:33.937 回答
2

您不需要$.getJSON此 api 链接,例如:http ://tinyurl.com/api-create.php?url=google.com 。因为它将短 url 作为纯文本返回。

所以,我认为这就足够了:

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

见:http ://api.jquery.com/jQuery.get/

于 2013-06-30T21:37:46.393 回答
1

直接在浏览器中调用 TinyUrl API 会导致 CORS 问题,解决方法之一是使用 cors-anywhere 服务。我通常使用tinyurl-clientnpm包来缩短浏览器上的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>
});

PS我是npm包的创建者,如果你有任何问题,你可以在这里发布https://github.com/kulkultech/tinyurl-client

于 2020-06-03T05:41:19.877 回答