自动完成:加载资源失败:预检响应不成功

Posted

技术标签:

【中文标题】自动完成:加载资源失败:预检响应不成功【英文标题】:autocomplete : Failed to load resource: Preflight response is not successful 【发布时间】:2018-08-10 15:31:44 【问题描述】:

我正在尝试使用 php 和 jQuery 进行自动完成。我正在使用本教程:https://daveismyname.blog/autocomplete-with-php-mysql-and-jquery-ui

我尝试了不同的解决方案,但无论我尝试什么,我都会不断收到这两个错误。

[错误] 加载资源失败:预检响应不成功(search.php,第 0 行) [错误] XMLHttpRequest 无法加载文件:///Applications/MAMP/htdocs/autocomplete-master/search.php?term=a。预检响应不成功

我猜它来自我对数据库的请求,但我真的不知道我做错了什么。这是我的代码

<?php
define('DB_SERVER', 'localhost');
define('DB_USER', 'root');
define('DB_PASSWORD', 'root');
define('DB_NAME', 'demo');


if (isset($_GET['term']))
    $return_arr = array();

    try 
        $conn = new PDO("mysql:host=".DB_SERVER.";port=8889;dbname=".DB_NAME, DB_USER, DB_PASSWORD);
        $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

        $stmt = $conn->prepare('SELECT country FROM countries WHERE country LIKE :term');
        $stmt->execute(array('term' => '%'.$_GET['term'].'%'));

        while($row = $stmt->fetch()) 
            $return_arr[] =  $row['country'];
        

     catch(PDOException $e) 
        echo 'ERROR: ' . $e->getMessage();
    


    /* Toss back results as json encoded array. */
    echo json_encode($return_arr);



?>

感谢您的帮助

【问题讨论】:

能否包含执行 ajax 调用的 javascript 位? 【参考方案1】:

您好,感谢您的回答。 这是我的 html 文件和我的 java 代码,希望这是你所希望的。

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Demo</title>
  <link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.1/themes/base/minified/jquery-ui.min.css" type="text/css" /> 
</head>
<body> 

    <form action='' method='post'>
        <p><label>Country:</label><input type='text' name='country' value='' class='auto'></p>
    </form>

<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script type="text/javascript" src="http://code.jquery.com/ui/1.10.1/jquery-ui.min.js"></script>    
<script type="text/javascript">
$(function() 

    //autocomplete
    $(".auto").autocomplete(
        source: "search.php",
        minLength: 1
    );             

);
</script>
</body>
</html>

再次感谢您的帮助。 亚瑟。

【讨论】:

以上是关于自动完成:加载资源失败:预检响应不成功的主要内容,如果未能解决你的问题,请参考以下文章

自动完成:未能加载响应数据

CORS 预检响应未成功

本地加载 XML 的 jQuery Ajax 问题 - Safari 版本 11.0 - 错误:XMLHttpRequest 无法加载 .xml。预检响应不成功

调用 WCF 服务时 JSONP 自动完成失败

CORS 问题:预检响应具有无效的 HTTP 状态代码 403

jQueryUI 自动完成映射响应数据