如果您知道如何在带有提交按钮的表单上执行此操作,那并没有什么不同。无论如何,令牌生成必须在服务器上完成并存储。
即使您使用的是 Javascript,您也在使用 PHP 来输出包含 javascript 代码的页面,对吗?
所以一个非常快速的代码示例可能如下:
输出您的 javascript 的 PHP 文件的代码:
<?
$token = md5( mt_rand() . session_id() );
$_SESSION['token:'.$token] = true;
?>
你的JavaScript:
dataType: "text",
url: '/username.php',
data: 'username=' + $('#username').val() + '&token=' + '<?=$token?>',
type: 'GET',
您的用户名.php:
if ( $_SESSION["token:".$_POST["token"]] == true ){
exit();
} else {
unset($_SESSION["token:".$_POST["token"]]);
}
注意,上面的例子有一些问题,比如“多次打开同一个页面,token会被更新”等等。所以它不是一个准备好用于生产的代码。[更新] 我更新了代码以解决“令牌将被更新......”问题。
但你明白了。
在服务器上生成令牌,在您的 javascript 中使用该令牌,然后在您的username.php
.
PS 如果您的 javascript 是外部脚本文件,只需将其作为全局变量加载到加载 javascript 的页面上,并在外部 javascript 文件中使用该变量。