完全错误
从源“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();
}
});
}
});
});
首先确保代码完全没有错误,然后请尝试如下操作。我不知道它到底能解决你的问题。试试吧。
<?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) 的更多信息。请检查上述链接中的答案。
当我使用同一文件夹中的所有文件时,这有帮助,问题就消失了