2012-04-20 4 views
1

Этот jQuery script one создает URL-адрес, такой как www.tumblr.com/like/fGKvAJgQ?id=16664837215, а затем использует iframe для отправки «как» с указанным выше URL-адресом на серверы Tumblr.Использование jQuery для 'ping' URL

$(document).on('click', '.like', function (event) { 

    event.preventDefault(); 

    var command = $(this).hasClass('liked') ? 'unlike' : 'like', 
     post = $(this).closest('.post'), 
     oauth = post.find('.reblog').attr('href').slice(-8), 
     id = post.attr('id'), 
     likeUrl = 'http://www.tumblr.com/' + command + '/' + oauth + '?id=' + id; 

    $('#like-it').attr('src', likeUrl); 
    $(this).toggleClass('liked'); 

}); 

В HTML это используется:

<article id="{PostID}"> 
    <a href="{ReblogURL}" class="reblog">reblog</a> 
    <a href="#" class="like">like</a> 
</article> 

<iframe id="like-it"></iframe> 

Есть ли способ, чтобы отправить эту информацию в Tumblr вместо того, чтобы использовать IFRAME с JQuery?

+0

это, возможно: http://stackoverflow.com/questions/3506208/jquery-ajax-cross-domain#3506306? –

+0

Оба сайта находятся в одном домене, хотя у меня нет доступа к PHP. Разве я что-то не хватает? – Matt

+0

@Matt Если ваш скрипт не запущен на странице в домене 'www.tumblr.com', вы смотрите на запрос AJAX с кросс-доменом. Вы также не нуждаетесь ** в доступе к PHP, потому что для ваших целей вам действительно не нужен ответ (кроме этого он указывает, что запрос был успешным, а не возвращал код состояния ошибки). –

ответ

0

Нет, это невозможно по соображениям безопасности.

Везде, где вы видите подобную кнопку, это iframe, потому что вы не можете получить доступ к iframe на родительской странице с помощью JavaScript, если домен, протокол или порт не совпадают.

Это потому, что если пользователь посещает вашу страницу, вы можете заставить его как миллионы страниц, просто отправив запрос ajax на каждую страницу в противном случае.

Смежные вопросы