解決策が見つからない問題が発生しました。さらに悪いことに、他の誰もこの問題を抱えていないようですので、私はおそらく非常にばかげた何かをしています。要求に応じてcURLがハングアップし、タイムアウトが進行するのを待ちます。
背景情報:AJAXリクエストを別のサーバーに転送するプロキシのようなページを作成しようとしています。これは同じドメインポリシーを迂回するものです。このコードでは、POST変数を取り出し、別のページに転送してから結果を返すだけです。それは動作していますが、1つの理由があります:タイムアウトが継続するのを待つたびに。私は今すぐ1秒にしているので、今は大丈夫ですが、私はむしろ速い応答と適切なタイムアウトを持っています。ここで
は私のコードです:
// create a new cURL resource
$call = curl_init();
// set URL and other appropriate options
curl_setopt($call, CURLOPT_URL, $url);
curl_setopt($call, CURLOPT_POST, true);
curl_setopt($call, CURLOPT_POSTFIELDS, $params);
curl_setopt($call, CURLOPT_HEADER, false);
curl_setopt($call, CURLOPT_RETURNTRANSFER, true);
curl_setopt($call, CURLOPT_CONNECTTIMEOUT, 1);
// grab URL and pass it to the browser
$response = curl_exec($call);
// close cURL resource, and free up system resources
curl_close($call);
echo $response;
私は「接続:閉じる」送信しようとしたことで、ヘッダを、ターゲット・コードは、それがフラッシュし、コンテンツの長さを設定する(実行中に行われますように指定するようにするには、いくつかの方法、die()など)。この時点で、私は実際に何が起こっているのか分かりません。私が最も驚いたのは、同様の問題を持つ人がいないことです。
誰が私を助けることができますか?
奇妙なことに、あなたがタイムアウトを待っていると記述するのは間違いですが、タイムアウトは最大値を意味します。タイムアウトが指定されていない場合(または値として0を指定した場合)、アプリケーションの動作は何ですか? –
私はタイムアウト値として0を試していませんが、タイムアウトが指定されていないと、約15秒かかります。 –