2013-10-30 3 views
0

이 사이트의 데이터를 얻으려고합니다. http://www.amf.asso.fr/, 특히이 유형의 페이지 http://www.amf.asso.fr/annuaire/index.asp?refer=commune&dep_n_id=45&NUM_INSEE=45001에 있습니다. 나는 200 개 상태

Request URL: myproxy.php?url=http://www.amf.asso.fr/annuaire/index.asp?refer=commune&dep_n_id=45&NUM_INSEE=45001 
Request Method:GET 
Status Code:200 OK 

하지만 전혀 내용이없는 응답을

<?php 
header('Access-Control-Allow-Origin: *'); 
if (isset($_GET['url']) && preg_match('`^http://`', $_GET['url'])) { 
echo file_get_contents($_GET['url']); 
} 
?> 

: 여기 내 프록시 파일을

$.get('myproxy.php?url=http://www.amf.asso.fr/annuaire/index.asp?refer=commune&dep_n_id=45&NUM_INSEE=45001', function (a) { 
// do something 
}); 

을하고이 목적을 위해 나는이 코드를 사용하고 있습니다. 나는 전문가가 아니기 때문에 왜 다른 사이트에서는 완벽하게 작동하기 때문에 왜 보이지 않습니다. 페이지에서 콘텐츠를 가져올 수없는 항목이 있습니까? 내가 빠진 게 뭐야? 도움/통찰력에 감사드립니다.

+0

는 대부분 그런 식으로 액세스 할 때 원격 사이트가 전혀 내용을 반환하지 않습니다 말했다. –

+0

예를 들어 기본 URL이 있습니다. 하지만 내가 찾는 페이지에 대한 권리가 있다고 생각해. 주위에 방법이 있는지 아십니까? –

+0

요청을 브라우저 요청을 모방하게하는 특정 헤더를 설정할 수 있지만 모두 해당 서버가 찾는 대상에 따라 다릅니다. –

답변

1

아마 amf.asso.fr 사이트의 도메인 간 보안 때문에이 작업을 수행 할 수 없습니다. 이 문서에 설명 된 바와 같이

: jQuery $.get() function succeeds with 200 but returns no content in Firefox

대신 컬을 사용해보십시오 :

$curl_handle=curl_init(); 
curl_setopt($curl_handle, CURLOPT_URL,$_GET['url']); 
curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2); 
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($curl_handle, CURLOPT_USERAGENT, 'Your application name'); 
$query = curl_exec($curl_handle); 
curl_close($curl_handle); 

echo $query; 
+0

감사합니다. 실제로 코드를 원격 사이트에 추가해야합니다. 그리고 당신의 PHP를 사용하는 경우, 나는이 사이트에 대해 오류 500을 얻었고, 코드는 미리 작동하고있었습니다. –

+1

나는 cors가 이것과 관련이 있다고 생각하지 않는다. 그는 javascript로 cross-origin 요청을하지 않는다. –

+0

귀하의 PHP 사이트에? 머리글 또는 어떤 것도 복잡하게 설정하지 마십시오. 브라우저에서 해당 페이지를로드하고 200 OK를 얻을 수 있습니까? – brandonscript

관련 문제