【问题标题】:HTTP Status response returning 200 when I have set it to 201当我将其设置为 201 时,HTTP 状态响应返回 200
【发布时间】:2014-05-15 06:45:37
【问题描述】:

我正在使用 AJAX 作为登录表单,在用户提供正确的凭据后,它应该重定向到登录页面。

这是 AJAX 布局(登录和注册在 accounts.js 中的不同功能):

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

在 login.php 和 register.php 中都有代码检查成功,如下所示:

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

Register 如果成功则返回 201,但登录总是返回 200(但会回显成功消息)

JS代码:

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';
   }
}

【问题讨论】:

    标签: javascript php ajax


    【解决方案1】:

    header 接受一个字符串作为它的参数(不是整数)。

    header("HTTP/1.0 201 Created")
    

    或使用http_response_code

    http_response_code(201)
    

    【讨论】:

      【解决方案2】:

      你必须在任何内容之前输出标题。

      尝试将header(201); 移动到echo 调用之前,并确保您没有任何其他输出更早。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-23
        • 2011-12-11
        • 1970-01-01
        相关资源
        最近更新 更多