2013-02-21 2 views
11

외부 웹 사이트에서 단일 페이지를로드 할 수 있습니까?jQuery 외부 사이트 페이지로드

나는 당신이 다른 도메인에 페이지를로드하려고 한 페이지를 표시하기 위해 노력하고 있지만

$("#response").load("http://domain.com", function(response, status, xhr) { 
    if (status == "error") { 
     var msg = "Sorry but there was an error: "; 
     alert(msg + xhr.status + " " + xhr.statusText); 
    } 
}); 

도움이 될 것 크게

+1

네, 가능하지만, 당신이 여기를보세요 PHP : –

+0

1 라인이 필요합니다 봉사하는 행복 - http://en.wikipedia.org/을 wiki/Cross-origin_resource_sharing 및 여기 http://msdn.microsoft.com/en-us/library/windows/apps/hh767443.aspx – Bakudan

+0

RSS 피드 만 필요하고 Google에 의존하지 않으려면 [ jquery-feeds] (https://github.com/camagu/jquery-feeds/). – guaka

답변

19

당신은 (보안상의 이유로)를 크로스 도메인 정책 문제의 원인 AJAX로 실행중인 당신을 못하게 같은 도메인에 앉아 있지 않은 페이지에서 콘텐츠를 가져옵니다.

는 그것을 제거하고 작업을 수행하려면 : 또는 어떤 파일을 바로 할 (당신의 HTML 내부보다

<?php echo file_get_contents($_GET['url']); ?> 

: 당신은 당신이 PHP의 그냥이 라인 grabber.php를 호출 할 수있는 PHP 파일이 필요
을 like :)

<!DOCTYPE html> 
<html> 
<head> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> 
    <meta charset=utf-8 /> 
    <title>test</title> 
</head> 
<body> 

    <div id="response"></div> 

</body> 

<script> 
$(function(){ 
    var contentURI= 'http://domain.com #element'; // URL TO GRAB + # of any desired element // if needed :) 
    $('#response').load('grabber.php?url='+ contentURI); 
}); 
</script> 

</html> 

왜 작동하나요?

  • 지금, AJAX는 이제 콘텐츠가 (서버) 도메인에
  • grabber.php 원하는 내용
  • 에게 에코의 grabber.php 페이지에 간단한 GET 요청을 전송한다!
  • 및 AJAX는 :
+1

이것은 아주 좋습니다. 한 가지 문제. 나는 많은 사이트가 한번 절대 경로를 잃어 버리는 것을 느낍니다. 페이지를 가져 와서 그대로 유지하는 방법을 알고 있습니까? – andehlu

+1

@andehlu로드 된 내용을 iframe에 추가 할 수 있습니다. 경로가 순서대로 유지되어야합니다. –

+0

@WessamElMahdy로드 된 페이지에 감탄하기를 원하거나로드 된 요소를 실제로 사용하고 싶다면 .... –

0

감사 작업을 얻이 수없는 것? 예, 당신이 당신의 방법에 크로스 도메인 정책을 가지고있는 것 같으면,

...