Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将javascript变量传递给ajax_Javascript_Php_Jquery_Ajax - Fatal编程技术网

将javascript变量传递给ajax

将javascript变量传递给ajax,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我在一个有很多表单的网站上工作。大多数表单将通过jquery AJAX提交 我已经为安全性实现了recaptcha,但客户不喜欢它,因为有时文字很难阅读 作为另一种选择,我正在研究针对不太重要的表单的honeytrap方法。据我所知,在这个方法中,我通过CSS对普通用户隐藏了表单中的一个字段。因此,合法用户将保留该字段为空,而机器人将填充该字段 现在我的问题是,因为我使用jQueryAjax进行表单提交,而不是表单中的隐藏字段,所以我不能将一个额外的变量(连同表单字段变量)从javascript

我在一个有很多表单的网站上工作。大多数表单将通过jquery AJAX提交

我已经为安全性实现了recaptcha,但客户不喜欢它,因为有时文字很难阅读

作为另一种选择,我正在研究针对不太重要的表单的honeytrap方法。据我所知,在这个方法中,我通过CSS对普通用户隐藏了表单中的一个字段。因此,合法用户将保留该字段为空,而机器人将填充该字段

现在我的问题是,因为我使用jQueryAjax进行表单提交,而不是表单中的隐藏字段,所以我不能将一个额外的变量(连同表单字段变量)从javascript传递到AJAX吗。(如var secretword=1)AJAX将检查该变量(如果secretword==1),如果该变量为空(bot将不使用javascript生成sumbit表单,因此var为空),则不会提交表单。对于合法用户,javascript函数将向该变量添加“1”值。我的方法是否像honeytrap一样安全

注意:网站在没有javascript的情况下无法工作,所以不必讨论禁用javascript时会发生什么


请就此向我提供宝贵的建议。

你真的想得太多了

如果您仅通过AJAX进行合法提交,那么将表单的
action
属性设置为错误,您就有效地完成了建议的解决方案:任何直接提交表单而不使用JS的人都将忽略其提交

这显然不会阻止任何人知道AJAX提交的目的地,直接对该端点进行垃圾处理,但您提出的
secretword=1
解决方案或传统的隐藏字段也不会