无法通过 AJAX jQuery 从 GET 请求获得对 PHP API 的响应

我试图在用户使用 jQuery 中的“keyup”事件输入文本时获取数据。

我实际上是在数据库中搜索以查找与模式匹配的所有单词。但是,我没有收到来自 PHP API 的响应。错误是

404 - 未找到。

我是 AJAX jQuery 的新手,我试图了解问题出在哪里。另外,我用 Postman 测试了 PHP 文件,它可以工作,返回 json 格式的数据。所以,我认为问题出在我的 Jquery 代码上。

我发送输入值的地方有我的 AJAX jQuery。

var searchRequest = null;

$(function() {

  var minlength = 3;


  $("#phrEn").keyup(function() {

    var lang = $('option:selected', "#lang"),

      value = $('option:selected', "#lang").attr('value');

    var that = this,

      value1 = $(this).val();

    if (value.length >= minlength) {

      if (searchRequest != null)

        searchRequest.abort();

      searchRequest = $.ajax({


        type: "GET",

        url: "/../api/english/createPhrase.php",

        data: {

          'tablename': value,

          'pattern': value1

        },

        dataType: "json",

        success: function(data) {


          $.each(data, function(key, value) {

            $("#result").append(value);

          });

        },

        complete: function() {


        }


      });

    }


  });


});

<form action="" method="POST" id="formid">

  <h3>My first dictionary!</h3>

  <div class="label">

    <label>Translate from English</label>

  </div>

  <div class="enform">

    <textarea class="form" id="phrEn" name="enPhrase" placeholder="Type phrase on English language" cols="50" rows="10" wrap="hard"></textarea>

  </div>

  <div class="addbutton">

    <button class="button" type="submit" id="btnAdd" name="submit" onclick="insertIntoDatabase();">Add</button>

  </div>

  <div class="selectlist">

    <div class="dropdown" style="float:center">


      <div class="dropdown-content">

        <label>To</label>

        <select name="language" id="lang">

          <option value="spanish">Spanish</option>

          <option value="french">French</option>

          <option value="german">German</option>

          <option value="russian">Russian</option>

        </select>

      </div>

    </div>

  </div>

慕丝7291255
浏览 90回答 1
1回答

qq_遁去的一_1

我的项目在我的本地主机上运行,“/../”意味着我在公共文件夹中有 index,php 文件,我需要上升一个级别然后转到 api 文件夹,我有不同的文件夹。您只能访问具有 URL 的 PHP 程序。假设您的公用文件夹是 DocumentRoot,那么该目录之外的任何文件都没有 URL。您不能发送..到 HTTP 服务器并访问其上的任意文件。想象一下,如果人们能够使用../../../../../etc/passwd来收集任何服务器的密码文件。您需要移动您的api文件夹,使其具有 URL(或通过其他机制(如 ApacheAlias指令)为其提供 URL)。
打开App,查看更多内容
随时随地看视频慕课网APP