2011-11-05 2 views
2

어디서나 해결책을 찾을 수없는 문제가 있습니다. 더 나쁜 것은 아무도이 문제가있는 것 같아서 아마 뭔가 어리석은 짓을 할 것입니다.요청시 cURL이 멈추고 계속 진행될 때까지 대기합니다.

일부 배경 정보 : AJAX 요청을 다른 서버로 전달하는 프록시 같은 페이지를 만들려고합니다. 이것은 동일한 도메인 정책을 우회합니다. 이 코드에서 원하는 것은 POST 변수를 가져 와서 다른 페이지로 전달한 다음 결과를 반환하는 것뿐입니다. 그것은 일을하고 있지만 한 가지 : 타임 아웃이 계속 될 때까지 기다릴 때마다. 이제 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을 지정하는 경우) 응용 프로그램 동작은 무엇입니까? –

+0

아직 시간 초과 값으로 0으로 시도하지는 않았지만 지정된 시간 제한이 없으면 약 15 초가 걸립니다. 기본값은 일종의 기본값입니다. –

답변

0

서버가 실제로 요청을 완료하지 않았 으면 의미가 있습니다. 이는 페이지 스트리밍 또는 서비스 스트리밍 시나리오에서 예상됩니다. 서버가 실제로 각 요청에 대해 완전하고 완전한 HTTP 응답을 반환하고 있습니까?

+0

브라우저에서 직접 페이지를 호출해도 문제가 발생하지 않는다고 생각합니다. 나는 그것을 들여다 볼 것이다. 문제가있을 수있다. –

관련 문제