Jquery-$.get返回状态为200的空值

Jquery-$.get返回状态为200的空值,jquery,Jquery,我正在尝试获取这个网站上的一些数据,特别是在这种类型的页面上。为此,我使用以下代码: $.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 }); 这里是我的代理文件: <?php header('Access-Control-Allow-Orig

我正在尝试获取这个网站上的一些数据,特别是在这种类型的页面上。为此,我使用以下代码:

$.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
}); 
这里是我的代理文件:

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

但没有任何内容。我不是一个专家,所以我不明白为什么,因为它在其他网站上运行了好几次。页面上有什么东西阻止我获取内容吗?我错过了什么?感谢您的帮助/见解。

由于amf.asso.fr站点上的跨域安全性,您可能无法做到这一点

如本文所述:

尝试改用cURL:

$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;

谢谢,我确实应该补充一点,代码在远程站点上工作。如果我使用你的php,我会在这个网站上得到一个错误500,与之前代码运行的网站一样。我认为cors与此无关,他没有用javascript发出跨源请求。如果你对你的php网站做一些简单的事情,会发生什么?不要设置标题或任何复杂的内容。你能在浏览器中加载该页面并得到200分吗?是的,这段php代码过去在不允许跨域请求的域中运行时没有问题。我编辑了答案,建议你改为尝试cURL。该网站拒绝了
文件获取内容
,但是cURL返回的是一个没有样式的版本。如果要解析相对引用的项,则需要进行一些清理。很可能是说远程站点在以这种方式访问时根本不返回任何内容。确实如此,以基本url为例。但我认为你是我要找的那一页的合适人选。你知道有没有办法解决这个问题吗?你可以设置特定的头,使你的请求模仿浏览器请求,但这完全取决于服务器在寻找什么。
$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;