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);
});
此调用也无效。 试过各种电话,但没有得到微小的声音。
答案 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)
});
答案 2 :(得分:0)
直接在浏览器中调用TinyUrl API会导致您出现CORS问题,一种解决方法是使用cors-wherewhere服务。我通常使用tinyurl-client
npm软件包来缩短浏览器中的url,这是使用方法
npm install @kulkul/tinyurl-client
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
发布