gpt4 book ai didi

jquery - 使用 jQuery 将额外数据附加到页面中的每个链接

转载 作者:行者123 更新时间:2023-12-01 06:04:58 25 4
gpt4 key购买 nike

我正在服务器端使用不流行的编程语言创建一个 Web 应用程序。因此很多认证代码需要自己开发。

在服务器端,我需要接收来自客户端的每个 GET 请求的身份验证字符串,以便我可以确定这是否是有效用户(否则我会将用户引导到登录屏幕)。

我想我可以使用 jQuery 在所有链接的 href 参数中添加一些内容,一些行:

jQuery("a").attr("href).append("?token='"+tokenStr+"'");

但是如果链接已经有一个“?”,就会引入一个错误。我更喜欢将信息作为 POST 发送到服务器(还有其他选择吗?),但我不确定是否可以在 HTML 中做到这一点。

我不希望身份验证 token 成为 URL 的一部分的原因是,如果用户将该页面添加为书签,服务器会将他定向到登录页面,因为 token 将在一段时间后过期。

最佳答案

试试这个:

var tokenStr = 'something';
$('a').each(function(){
var elem = $(this),
href = elem.attr('href'),
hasQueryString = href.indexOf('?') > -1;
if (hasQueryString) {
elem.attr('href', href + '&token=' + tokenStr);
} else {
elem.attr('href', href + '?token=' + tokenStr);
}
});

这是一个更好的版本,允许在 url 中使用散列 (#)/ anchor :

var tokenStr = 'something';
$('a').each(function () {
var elem = $(this),
parts = elem.attr('href').split('#'),
hasQueryString = parts[0].indexOf('?') > -1;
if (parts[0].length > 0) {
parts[0] = parts[0] + (hasQueryString ? '&' : '?') + 'token=' + tokenStr;
}
elem.attr('href', (parts.length > 1 ? parts.join('#') : parts.join()));
});

此外,您也可以将“token”参数作为隐藏字段注入(inject)到页面上的所有表单中:

$('form').append(
$('<input type="hidden" name="token"/>').attr('value', tokenStr)
);

关于jquery - 使用 jQuery 将额外数据附加到页面中的每个链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7244242/

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