已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:“Access-Control-Allow-Origin”标头具有值

问题描述 投票:0回答:2

完全错误

从源“domain”访问“https:/domain/errors/403/”(从“http://domain/includes/action.php”重定向)的 XMLHttpRequest 已被 CORS 策略阻止:对预检请求的响应不会无法通过访问控制检查:“Access-Control-Allow-Origin”标头的值“http://domain”不等于提供的源。

代码应该无需刷新即可搜索,因此在本地主机中一切正常,但是当我转到服务器时,我在控制台中收到此错误

这是我的 php,我在其中收到了对我的主页的响应

<?php
    include 'db.php';
    if (isset($_POST['search'])) {
    $Name = $_POST['search'];
    $Query = "SELECT * FROM items WHERE name LIKE '%$Name%' OR namea LIKE '%$Name%' LIMIT 6";
    $q2 = "SELECT * FROM items WHERE namea LIKE '%$Name%' LIMIT 6";
    $ExecQuery = mysqli_query($con, $Query);
    $ExecQuery2 = mysqli_query($con, $q2);
    if ($ExecQuery) {
        $go = $ExecQuery;
    } else {
        $go = $ExecQuery2;
    }
    echo '<ul class="cards">';
    while ($row = mysqli_fetch_array($go)) {
        $name = $row['name'];
        $p = $row['price'];
        $d = $row['descrip'];
        $m = $row['img'];
        echo '
        <li class="cards__item">
        <div class="card">
            <img src="pimg/' . $m . '" class="card__image">
            <div class="card__content">
                <div class="card__title">name: ' . $name . '</div>
                <div class="card__title">price: ' . $p . ' $</div>
                <p class="card__text">' . $d . '</p>
                
            </div>
        </div>
        </li>';
    }
}

这是我的js代码,用于将数据发送到search.php并得到响应

function fill(Value) {
    $('#search').val(Value);
    $('#display').hide();
    }
    $(document).ready(function () {
    $("#search").keyup(function () {
        var name = $('#search').val();
        if (name != "") {
            $.ajax({
                type: "POST",
                url: "includes/search.php",
                data: {
                    search: name
                },
                success: function (html) {
                    $("#display").html(html).show();
                }
            });
        }
    });
});
javascript php ajax backend
2个回答
0
投票

首先确保代码完全没有错误,然后请尝试如下操作。我不知道它到底能解决你的问题。试试吧。

<?php
ob_start();
include 'db.php';

header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS');
header("Access-Control-Allow-Headers: X-Requested-With");

if (isset($_POST['search'])) {
   // do the things you needfull
}

ob_end_flush();

您将从这里获得有关 带有 PHP 标头的跨源请求标头 (CORS) 的更多信息。请检查上述链接中的答案。


0
投票

当我使用同一文件夹中的所有文件时,这有帮助,问题就消失了

© www.soinside.com 2019 - 2024. All rights reserved.