Вариант № два ) более изящный, но требует поддержки php - либо php от юкоз, либо внешней - любого хоста с php.
Принцип прост - отправить на сервер короткую ссылку и получить длинную.
Делается это несложно, отправляет короткая ссылка в параметре гет запроса, на сервере по ней осуществляется запрос header страницы и отдача адреса переадресации.
Как-то смутно на словах..
Короче, вот:
Код
<div id="apiCont"></div>
<script type="text/javascript">
$.getJSON('http://static.likbezz.ru/.api/data/get_short_link.php?callback=?',{'url':'http://likbezz.ru/api/publ/21-1-0-106'}, function (data,b,c) {
if(c.status!='200'){return cont.html('<b style="color:#F33;">Извините, но произошла ошибка: «'+c.status+'» '+c.statusText+'!</b>');}
if (data.url){
$.get('/api'+data.url,function(d){
var cont=$('#apiCont'),string=$('string',d);
cont.html('<h1><a href="http://likbezz.ru'+string.eq(2).text()+'">'+string.eq(0).text()+'</a></h1><br /><br /><div>'+string.eq(1).text()+'</div>');
});
};
});
</script>
Где:
Код
<div id="apiCont"></div>
- контейнер для контента.
Код
http://static.likbezz.ru/.api/data/get_short_link.php?callback=?',{'url':'http://likbezz.ru/api/publ/21-1-0-106'}
- запрос и передача короткой ссылки.
Код
if (data.url){
$.get('/api'+data.url,function(d){ ... }
- если ответ получен, совершаем запрос.
Остальное - как обычно.
---
Ну и сам файл get_short_link.php
Код
<?php
if (!isset($_GET['callback'])) {
exit('Некорректные параметры запроса');
};
if (!isset($_GET['url'])) {
exit('Некорректные параметры запроса');
};
function getNextLocation($url){
$arr = get_headers($url);
for ($i=0,$j=count($arr); $i<$j; $i++){
if (strpos($arr[$i], 'ocation:')){
$url = substr($arr[$i],10);
break;
}
}
return $url;
};
$url = $_GET['url'];
$callback = $_GET['callback'];
$url = getNextLocation($url);
echo $callback.'('."{'url':'".$url."'}".')';
?>
---
☑ Пример: http://likbezz.ru/_example/_api/2013/get_api_short_link_json.html