Php Ajax:尝试使用相对路径时出现Post错误

Php Ajax:尝试使用相对路径时出现Post错误,php,jquery,ajax,relative-path,Php,Jquery,Ajax,Relative Path,努力获取Ajax post请求的相对路径以获取php文件。我没有出错,只是什么都没发生 浏览了这个网站,但在我了解的Ajax相关路径上找不到以前的答案。还是个新手。如果有人能用外行的语言解释,我会非常感激的 我试图从根文件“index.php”访问php文件“search/search.php”。该文件包含Ajax请求。当两个文件都在同一目录中时,这种方法就起作用了 文件结构如下: JQuery代码片段: $(function() { $('form').on("submit", funct

努力获取Ajax post请求的相对路径以获取php文件。我没有出错,只是什么都没发生

浏览了这个网站,但在我了解的Ajax相关路径上找不到以前的答案。还是个新手。如果有人能用外行的语言解释,我会非常感激的

我试图从根文件“index.php”访问php文件“search/search.php”。该文件包含Ajax请求。当两个文件都在同一目录中时,这种方法就起作用了

文件结构如下:

JQuery代码片段:

$(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>');
          });
        });
      }
    });
  });
});

前导正斜杠的意思是“从文档根开始”,index.php就在这里。所以/search/search.php应该是正确的。如果服务器找不到该文件,那么肯定会发生url重写


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

试试这个search/search.php,看看这个答案@Dilek谢谢。当我进行建议更改时,不会发生任何错误。前导正斜杠只是指从index.php所在的文档根开始。所以/search/search.php应该是正确的。如果服务器找不到该文件,那么肯定会发生url重写。如果您使用的是apache,这可能发生在虚拟主机配置文件中,也可能发生在文档根目录中的.htaccess文件中;圆点使其成为隐藏文件。您只需将浏览器指向http://localhost:8000/search/search.php. 如果你得到一个404,你知道它与ajax无关。顺便说一句,当你删掉了关于得到404错误的部分时,你去掉了关于发生了什么的最重要的线索…我的荣幸。此时您可能会考虑到URL重写,它可以通过索引XP.php路由所有或某些请求。这减少了相对url的混乱,还允许您将所有代码放在路径中没有文档根的目录中。这不是本文的主题,但很值得一看。