【发布时间】: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