【问题标题】:Ajax: Getting a Post Error when trying to use Relative PathAjax:尝试使用相对路径时出现发布错误
【发布时间】:2020-05-12 05:47:11
【问题描述】:

努力获取 Ajax 发布请求的相对路径以获取 php 文件。我没有收到错误,只是没有任何反应。

浏览了这个网站,但在我理解的 Ajax 相对路径上找不到以前的答案。在这方面仍然是新手。真的很感激,如果有人可以用外行的方式解释它。

我正在尝试从根文件“index.php”访问 php 文件“search/search.php”(该文件包含 Ajax 请求)。这在两个文件位于同一目录时有效。

文件结构如下:

jQuery 代码 sn-p:

$(function() {
  $('form').on("submit", function(e) {
    e.preventDefault();
    $('#error').text(""); // reset
    var name = $.trim($("#search").val());
    if (name.match(/[^a-zA-Z0-9 ]/g)) {
      $('#error').text('Please enter letters and spaces only');
      return false;
    }
    if (name === '') {
      $('#error').text('Please enter some text');
      return false;
    }
    if (name.length > 0 && name.length < 3) {
      $('#error').text('Please enter more letters');
      return false;
    }

    $.ajax({
      url: 'search/search.php',
      method: 'POST',
      data: {
        msg: name
      },
      dataType: 'json',
      success: function(response) {

      $(".content").html("")
      $(".total").html("")

        if(response){
          var total = response.length;
          $('.total') .append(total + " Results");
         }

        $.each(response, function() {
          $.each($(this), function(i, item) {

            var mycss = (item.Type == 1) ? ' style="color: #ffa449;"' : '';
            $('.content').append('<div class="post"><div class="post-text"> ' + item.MessageText + ' </div><div class="post-action"><input type="button" value="Like" id="like_' + item.ID + '_' + item.UserID + '" class="like" ' + mycss + ' /><span id="likes_' + item.ID + '_' + item.UserID + '">' + item.cntLikes + '</span></div></div>');
          });
        });
      }
    });
  });
});

【问题讨论】:

  • 试试这个search/search.php 看看这个答案stackoverflow.com/a/59918008/12232340
  • @Dilek 谢谢。当我进行建议更改时,什么也没有发生(没有错误)。
  • 前导正斜杠仅表示从文档根目录开始,这是index.php 所在的位置。所以/search/search.php 应该是正确的。如果服务器无法找到该文件,按理说肯定有一些 url 重写发生。如果您使用的是 apache,这可能发生在虚拟主机配置文件中,也可能发生在 .htaccess 文件中(位于文档根目录中;点使其成为隐藏文件)。您只需将浏览器指向http://localhost:8000/search/search.php 即可进行测试。如果你得到一个 404,你就知道它与 ajax 无关。
  • 顺便说一句,当您编辑掉有关收到 404 错误的部分时,您取出了关于正在发生的事情的最重要的线索......
  • 我的荣幸。此时您可能会考虑考虑 url 重写,它可以通过 index.php 路由所有(或部分)请求。这减少了相对 url 的混淆,还允许您将所有代码放在其路径中没有文档根目录的目录中。这不是这篇文章的主题,但非常值得研究。

标签: php jquery ajax relative-path


【解决方案1】:

前导正斜杠仅表示“从文档根目录开始”,这是index.php 所在的位置。所以/search/search.php 应该是正确的。如果服务器无法找到该文件,按理说肯定有一些 url 重写发生。

您只需将浏览器指向http://localhost:8000/search/search.php 即可进行测试。如果你得到一个 404,你就知道它与 ajax 无关

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-23
    • 1970-01-01
    • 2019-09-05
    • 1970-01-01
    • 2014-11-02
    • 2016-03-03
    • 2013-05-10
    • 1970-01-01
    相关资源
    最近更新 更多