내 서버에서 AJAX를 통해 전송되지 않는 postdata와 관련된 문제점을 확인했습니다.AJAX postdata가 로컬 호스트에서 작동하지만 (Apache) 서버가 아님
function my_custom_ajax(target_page, target_element , postdata_contents) {
// Sending the XMLHttpRequest as postdata
var xhr = new XMLHttpRequest();
xhr.open("POST", target_page, true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;");
xhr.setRequestHeader("Content-length", postdata_contents.length);
xhr.setRequestHeader("Connection", "close");
xhr.send(postdata_contents);
// Waiting for the request to return
xhr.onreadystatechange = return_data;
// If all went well, we update the target element
function return_data()
{
if(xhr.readyState === 4)
{
if(xhr.status === 200)
{
// We update the target element
document.getElementById(target_element).innerHTML = xhr.responseText;
}
// Throw error in case of 404 or such
else
document.getElementById(target_element).innerHTML = "XHR can't be loaded";
}
// Throw error in case request got interrupted or didn't work out
else
document.getElementById(target_element).innerHTML = "XHR error";
}
}
그것은 다음과 같은 HTML로 호출 :을 디버깅하기 위해, 나는 간단한 AJAX 호출을 테스트하기 위해 자바 스크립트의 다음과 같은 상당히 최소한의 조각 쓴
<div onClick="my_custom_ajax('test_page.php?xhr','my_id','postdata_test');">
Click me
</div>
<div id="my_id">
xhr response will appear here
</div>
을 만 들어있는 PHP 페이지를 호출 이 :
exit(var_dump($_POST));
내가 소유하고 내 아파치 로컬 호스트에서이 코드 조각 또는 다른 아파치 서버를 실행, 그것은 POSTDATA로 postdata_contents에 무엇이든 통과 않습니다. 출구 (var_dump ($ _ POST)); 제대로 작동하는지 보여 주며 전달 된 postdata의 값을 인쇄합니다.
그러나 작동하지 않는 Apache 서버에서이 동일한 코드를 실행하면 PHP 파일에 따라 postdata가 전달되는 것처럼«배열 (0) {}»이 생깁니다. 여기
는 (죄송합니다, 프랑스어,하지만 분명해야하는 것은 무엇 무엇을) 요구 사항의 파이어 폭스의 개발 도구보기입니다 :디버그 도구는 POSTDATA 내용이 제대로 전송되고 있음을 보여줍니다 그러나
의 POSTDATA 어떻게 든 통과되지 않았 음을 반환 내용 쇼 :
내 로컬 호스트와 내 다른 아파치 서버에서는, 모든 것이 POSTDATA 제대로합니다 (위해서 var_dump 메시지가 스타일되지만 쉽게 그것의 요점을 볼 수 있습니다 전달 맨 마지막 단계까지 같은 정확히입니다 이 아파치 서버의 구성과 조롱과 I가 생각할 수있는 디버그 방법과 브레이크 포인트의 모든 노력의 시간 후
, 내 신경도까지 작동됩니다 postdata_test은 $ _POST의 일부)입니다 합리적으로 지금 당장 생각해보십시오. 다른 서버를 사용하거나 새 서버에서 로컬 Apache 구성 파일을 복사 할 수있는 옵션이 없으므로이 질문을 모두에게 미루어 다른 사람이 알아낼 수 있거나 비슷한 것을 만나기를 바랍니다. 사전에
감사합니다, 에릭 B.는