2014-02-12 4 views
1

안녕 나는 문제얻기 상태 0

내가 할 수있는 것을 내가 0 로 4 req.status로 req.readyState로 무엇입니까

alert("4"); 
    req.onreadystatechange=function() 
    { 
    alert("5"); 
    if (req.readyState==4 && req.status==200) 
    { 
    xmlDoc=req.responseXML; 
    alert("xml doc received"+xmlDoc); 
    txt=""; 
    x=xmlDoc.getElementsByTagName("FIRSTNAME"); 
    y=xmlDoc.getElementsByTagName("LASTNAME"); 
    alert("Response achieved"+x); 
    } 
    else 
    { 
    alert("Error!!! --> req.readyState "+req.readyState+" Error !!! ---> req.status "+req.status); 
    } 
    } 


req.open("POST",url,true); 
alert("6"); 
req.setRequestHeader("Content-type","application/x-www-form-urlencoded"); 
req.send(parameters); 

아약스 호출에 대한 아래의 코드를 사용하고 로컬 아파치 서버에서 파일을 호스팅하고 있습니다. 답장을 보내주십시오.

+0

원인은 없지만 : ajax (또는 비동기식)를 다룰 때는'alert '를 사용하지 마십시오. 'alert'는 자바 스크립트 인터프리터를 멈추고 여러분이 사용하는 브라우저에 따라 다르다면 비동기 코드와 상호 작용할 수 있습니다. 브라우저의 디버거를 사용하십시오.이 디버거는이를 위해 설계되었지만 극적으로 * 더 많은 정보를 제공합니다. 아니면 최악의 경우'console.log'를 사용하십시오. 하지만 다시, 디버거는 코드를 실행하는 방법을 이해하고 변수 등을 확인할 수 있도록 특별히 설계되었습니다. –

+0

가능한 중복 [HTML5 Post Request Body] (http://stackoverflow.com/questions/21725580/html5) -post-request-body) – Quentin

답변

3

일반적인 이유는 교차 도메인 호출을 시도하고 교차점 발신 아약스 호출을 금지하는 Same Origin Policy에 의해 중지 되었기 때문입니다. 개발자 콘솔 또는 네트워크 탭에 요청이 차단되었다는 오류가 표시되어야합니다.

해당 서버를 제어하거나 해당 서버에 접속할 수있는 경우 Cross-Origin Resource Sharing을 통해 출처의 액세스를 가능하게 할 수 있습니다. 슬프게도 IE8과 IE9에서는 XMLHttpRequest이 아닌 XDomainRequest 마이크로 소프트의 특별한 객체를 사용해야한다. (IE10에서는 마이크로 소프트가 마침내 파티에 참여했다.) 그들은 현대적인 브라우저에서 작동한다. 당신이 지원 JSONP와 함께 작동하도록하려는 서버 (JSON와 혼동하지 않는) 경우 요청이 POST하고 JSONP 그들이하지 않을 수 있습니다, 본질적으로 GET 작업을 같이하지만

다른 방법으로, 당신은 볼 수 있습니다.