2014-05-15 4 views
0

사용자가 방문 페이지로 리디렉션해야하는 올바른 자격 증명을 제공하면 로그인 양식에 AJAX가 사용됩니다.HTTP 상태 응답이 201로 설정되면 200을 반환합니다.

이것은 AJAX 레이아웃 (로그인 및 accounts.js에 다른 기능을 명중 등록)입니다 : login.php 모두에서

login.html      login.php 
       -> accounts.js -> 
register.html      register.php 

을 그래서 같은 성공을 확인하는 코드가 register.php :

: 그것은 성공, 그러나 항상 200을 반환 로그인 (하지만 성공 메시지 에코 않음)

JS 코드를 경우

if($success == 1) 
{ 
    echo '$success'; 
    $_SESSION['id'] = $id; 
     header(201); 
    exit(); 
} 

등록 (201)를 반환

xHRObject.open("GET", "login.php?id=" + Number(new Date) + options, true); 
xHRObject.onreadystatechange = function() { 
if (xHRObject.readyState == 4 && xHRObject.status == 200) 
    { 
    alert(xHRObject.status);   
    } 
    else if(xHRObject.status == 201) 
    { 
     window.location.href = 'landing.html'; 
    } 
} 

답변

2

헤더는 정수가 아닌 매개 변수로 문자열을 사용합니다.

header("HTTP/1.0 201 Created") 

또는 사용 http_response_code

http_response_code(201) 
1

콘텐츠를 출력하기 전에 헤더를 출력해야합니다.

echo 호출 전에 header(201);을 이동하고 이전에 출력 한 내용이 없는지 확인하십시오.

관련 문제