在我的网站上我有一个搜索框。我已尝试关闭自动填充建议,并创建一个由数据库中的建议填充的Div。
我的HTML是这样的:
<input type="text" id="searchbox" onkeyup="searchq();" autocomplete="off">
<input type="image" src="media/icons/search.png" id="search_button">
<div id="search_suggestions"></div>
然后我有一个类似这样的JS函数,它接受输入的内容并用一个单独的php文件查询db:
function searchq(){
var search_text = $("#searchbox").val();
console.log(search_text);
$.post("get_search_suggestions.php", {search_text: search_text}, function(output){
$("#search_suggestions").html(output);
});
}
$product_search_result = "";
if(isset($_POST['search_text'])){
$term = $_POST['search_text'];
$new_term = '%'.$term.'%';
$params = [$new_term];
$sql = "SELECT * FROM products WHERE name LIKE ?";
$stmt = DB::run($sql,$params);
$resultCount = $stmt->rowCount();
if($resultCount > 0){
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)){
$id = $row["pro_id"];
$product = $row["".$lang.""];
$params1 = [$id];
$sql1 = "SELECT * FROM products WHERE id=?";
$stmt1 = DB::run($sql1,$params1);
while ($row = $stmt1->fetch(PDO::FETCH_ASSOC)){
$url = $row["url"];
$product_name = $row["product_name"];
}
$product_search_result .= "<a href='product/$url'>";
$product_search_result .= translate($product_name);
$product_search_result .= "</a>";
}
}
}
echo $product_search_result;
这对我在Windows和Android上运行很好,但是一个使用mac的用户在控制台中看到以下内容:
Cross-Origin Read Blocking (CORB) blocked cross-origin response https://www.lifting365.com/beta/get_search_suggestions.php with MIME type text/html. See https://www.chromestatus.com/feature/5629709824032768 for more details.
任何关于如何解决这一问题的建议或想法都将不胜感激。我不知道为什么这些文件会被视为跨源文件,尽管这些文件位于主目录的同一目录或子目录中。