2012-04-20 4 views
1

이 jQuery script onewww.tumblr.com/like/fGKvAJgQ?id=16664837215과 같은 URL을 생성하고 iframe을 사용하여 위 URL의 'like'를 Tumblr의 서버에 보냅니다. HTML에서 jQuery를 사용하여 URL '핑 (ping)'하기

$(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'); 

}); 

이 사용됩니다

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

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

텀블러에이 정보를 전송하는 대신 jQuery로 iframe을를 사용하는 방법이 있나요?

+0

가능 : http://stackoverflow.com/questions/3506208/jquery-ajax-cross-domain#3506306? –

+0

웹 사이트는 모두 동일한 도메인에 있지만 PHP에 액세스 할 수 없습니다. 내가 놓친 게 아니라면? – Matt

+0

@Matt 'www.tumblr.com'도메인의 페이지에서 스크립트가 실행 중이 지 않으면 AJAX 교차 도메인 요청이 표시됩니다. 또한 PHP에 대한 ** 액세스가 필요하지 않습니다. 왜냐하면 목적에 따라 응답을 정말로 신경 쓰지 않기 때문입니다 (오류 상태 코드를 반환하지 않고 요청이 성공했다는 것을 제외하고). –

답변

0

보안상의 이유로 불가능하지 않습니다.

도메인, 프로토콜 또는 포트가 일치하지 않는 경우 자바 스크립트로 상위 페이지에서 iframe에 액세스 할 수 없으므로 유사한 버튼이 보이는 모든 곳에서 iframe입니다.

사용자가 페이지를 방문하면 다른 페이지로 Ajax 요청을 보내어 수백만 페이지를 좋아할 수 있기 때문입니다.

관련 문제