XMLHttpRequest 无法加载 [url].预检响应无效(重定向)

XMLHttpRequest cannot load [url]. Response for preflight is invalid (redirect)

本文关键字:响应 无效 重定向 加载 url XMLHttpRequest      更新时间:2023-09-26

我遇到了这个问题,我可以找到任何答案。我尝试通过引导 jquery 使用 x-editable 来更新文本。我已经附上了图片错误图像,下面是我的php代码

case 'update-number':
        if (isset($_POST['pk'])) {
            header('Content-Type: application/json;charset=UTF-8');
            header('Access-Control-Allow-Origin': '*');
            header('Access-Control-Allow-Methods: DELETE, HEAD, GET, OPTIONS, POST, PUT');
            header('Access-Control-Allow-Headers: Content-Type, Content-Range, Content-Disposition, Content-Description');
            header('Access-Control-Max-Age: 1728000');

            $user_id         = $_COOKIE['user_id'];
            $fed_id          = $_POST['pk'];
            $last_update     = date('Y-m-d h:i:s');
            $number = $_POST['value'];
            $query = "SELECT * FROM abc WHERE fed_id='$fed_id'";
            $result = $mysqli->query($query);
            $row= $result->num_rows;
                if ($row) {
                    $query = "UPDATE abc SET 
                    number      ='$number',
                    last_update         ='".$last_update."'
                    WHERE fed_id='".$fed_id."'";
                    $result = $mysqli->query($query);
                    echo "Updated";
                } else {
                    $query = "INSERT INTO abc (number, fed_id, user_id, last_update)
                              VALUES ('".$number."','".$fed_id."','".$user_id."','".$last_update."')";
                    $result = $mysqli->query($query);
                    echo "INSERTED";
                }
        }
        break;

我发现了问题。我在没有 www 的情况下使用基本网址(ex: http://myurl.com)我更改为 http://www.myurl.com 并删除了代码中的标题。请参阅下面的代码:

case 'update-number':
    if (isset($_POST['pk'])) {
        $user_id         = $_COOKIE['user_id'];
        $fed_id          = $_POST['pk'];
        $last_update     = date('Y-m-d h:i:s');
        $number = $_POST['value'];
        $query = "SELECT * FROM abc WHERE fed_id='$fed_id'";
        $result = $mysqli->query($query);
        $row= $result->num_rows;
            if ($row) {
                $query = "UPDATE abc SET 
                number      ='$number',
                last_update         ='".$last_update."'
                WHERE fed_id='".$fed_id."'";
                $result = $mysqli->query($query);
                echo "Updated";
            } else {
                $query = "INSERT INTO abc (number, fed_id, user_id, last_update)
                          VALUES ('".$number."','".$fed_id."','".$user_id."','".$last_update."')";
                $result = $mysqli->query($query);
                echo "INSERTED";
            }
    }
    break;
这可能是

由于协议无效

检查您的 URL,使用 http://而不是 https://时也会发生此错误。

我遇到了同样的问题,并用https替换了http来修复它。