gpt4 book ai didi

javascript - UrlSearchParams.get() 不适用于重写的网址

转载 作者:行者123 更新时间:2023-11-30 19:38:36 29 4
gpt4 key购买 nike

在我的网站上,我重写了所有网址。但是现在我已经开始使用 AJAX 进行投票功能(它是一个问答社区),但存在一些问题:

我将 new UrlSearchParams(window.location.search) 存储在常量中。然后我为此调用 .get() 方法。但是,因为 url 被重写,它无法识别查询。

const myParam = urlParams.get('id');

网址是 www.example.com/Questions/7 重写自 www.example.com/pages/question.php?id=7

我的 .htaccess 文件如下所示:

RewriteEngine On    # Turn on the rewriting engine
Options -MultiViews
RewriteRule ^$ /pages/index.php [L]
RewriteRule ^users/([0-9]+)$ pages/profile.php?id=$1 [NC] # Handle users
RewriteRule ^questions/([0-9]+)$ pages/question.php?id=$1 [NC] # Handle questions
RewriteRule ^([A-Za-z_]+)$ pages/$1.php [NC] # Handle pages
RewriteRule ^([A-Za-z_]+)$ pages/$1.html [NC] # Handle pages

如何克服重写 url 时 UrlSearchParams 无法识别查询字符串数据这一事实?

最佳答案

您的重写规则所有内部重写,这意味着客户端代码只能看到原始 URL,即 /Questions/7 .

由于您的 PHP 在服务器端运行并且可以看到重写的查询参数,您可以直接将它们作为 JS 变量注入(inject)以供客户端代码使用。

例如,将其放入您的 <head>节...

<script>
const ID_PARAM = <?= json_encode($_GET['id'] ?? null) ?>;
</script>

关于javascript - UrlSearchParams.get() 不适用于重写的网址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55670722/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com