【发布时间】:2020-08-09 19:36:13
【问题描述】:
我不确定发生了什么,但我最近尝试了 mod_rewrite 来修改我的网址。
原来的网址是这样的:main/index.php?board=announcements
我把它变成了这个:main/board/announcements
重要提示:没有公告文件夹或文件。我将它用作查询的 URL 参数。
我在我的 .htaccess 文件中使用了这一行来修改 url:
RewriteRule ^main/board/([0-9a-zA-Z_-]+) main/index.php?board=$1
问题在于,当我执行执行 ajax 调用的操作(例如发布消息或回复消息)时,它会复制页面的 html 元素。当我检查元素时,它显示我的页眉到页脚是重复的(例如,两个头部元素,两个导航),好像整个 html 页面都是重复的。
当我检查控制台时,它也生成了这个:
jquery-3.4.1.min.js:2 [Deprecation] Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience.
使用原始网址 main/index.php?board=announcements 时不会发生这种情况。我不知道发生了什么,真的。
感谢 Wesley,这是我最新的故障排除:
我的 ajax 调用之一示例
$(document).on("click", ".like i", function() {
var postid = $(this).closest("div").parent().find("input").val();
$.post("like.php", {
userid: id,
postid: postid
}, function(data) {
alert(data);
});
});
这是like.php的内容
<?php echo "Hello"; ?>
由于某种原因,它返回了整个 HTML 内容!使用原始网址时不会发生这种情况。可能是什么原因?
【问题讨论】:
-
您能否展示您用于从 ajax 代码加载新 html 的 JS 以及发回该响应的 php 代码?我觉得这个问题很可能会在那里。可能是你和 JS 中的 html 的方式,可能在你想要
html()或类似的时候使用append() -
谢谢。我根据您的评论使用最新的故障排除更新了我的问题。我想我已经接近答案了,但是是的。我提供了 Ajax 代码和 PHP,尽管它们不是我的实际代码(我做了一些故障排除)。出于某种原因,即使 PHP 只应该返回“Hello”,它在使用数据回调时也会返回整个 HTML 内容。使用原始 url 打开页面时不会发生这种情况,只会在 mod_rewrite 修改的 url 上发生。
-
得到了答案!谢谢你的提示。这对我帮助很大。 XD
标签: php jquery ajax mod-rewrite