0

我正在尝试在此站点http://www.amf.asso.fr/上获取一些数据,尤其是在此类页面http://www.amf.asso.fr/annuaire/index.asp?refer=公社&dep_n_id=45&NUM_INSEE=45001。为此,我正在使用此代码:

$.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']);
}
?>

我收到 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

但根本没有内容。我不是专家,所以我不明白为什么,因为它在其他网站上多次完美运行。页面上是否有阻止我获取内容的内容?我错过了什么?感谢您的帮助/见解。

4

1 回答 1

1

由于 amf.asso.fr 站点上的跨域安全性,您可能无法执行此操作。

如本文所述:jQuery $.get() 函数以 200 成功,但在 Firefox 中不返回任何内容

尝试改用 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;
于 2013-10-30T22:02:19.437 回答