0

このサイトhttp://www.amf.asso.fr/、特にこのタイプのページhttp://www.amf.asso.fr/annuaire/index.asp?refer=でデータを取得しようとしています。 commune&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 に答える