「外部」URL と言うとき、このページが実行されている Web サイト以外の Web サイトを指していますか? もしそうなら、私の最初の考えは、あなたが ajax 呼び出しでセキュリティ制限に遭遇していることです。
参照: http://en.wikipedia.org/wiki/Same_origin_policy
リモート サーバーに対して ajax 呼び出しを実行しようとすると、エラーなしで実行されますが、応答は完全に空白になります。ブラウザーは、応答を使用して何かを行うことを許可しません。jQueryが決定を下すものがないため、成功イベントもエラーイベントもトリガーされないため、イライラしたことを思い出したようです。
同じサイトに sites.php を配置するか、リモート ファイルを取得するローカルの php ページを作成する必要があります。これを行うと、ajax 呼び出しでリモート ファイルを php スクリプトからローカルに取得できます。
以下は、UltraCart で ajax 呼び出しをプロキシするために使用するコードの一部です: (私たちは PHP ショップではないので、それを改善する方法についていくつか提案したいと思います。) ローカル マシンにインストールし、それを使用して ajax をプロキシします。呼び出します。
<?php
$server_get_url = "https://www.myremoteserver.com/somepage.php";
$post_data = file_get_contents('php://input');
foreach($_SERVER as $i=>$val) {
if (strpos($i, 'HTTP_') === 0) {
$name = str_replace(array('HTTP_', '_'), array('', '-'), $i);
$header[$name] = $val;
}
}
$header[] = "Content-Length: ". strlen($post_data);
$ch = curl_init( $server_get_url );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 100);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
if ( strlen($post_data)>0 ){
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
}
$response = curl_exec($ch);
if (curl_errno($ch)) {
print curl_error($ch);
} else {
curl_close($ch);
// our page returns back json ... you may need to adjust this.
header('Content-type: application/json');
print $response;
}
?>