我在教程中听到了一些内容,如果禁用了javascript,某些内容将无效.偶尔我会看到解决方法.
问题是,这些相关吗?我无法想象现在有人没有启用javascript的浏览器,除了最古老的手机之外,无论如何你的页面都无法正常呈现.
人们还在为禁用javascript编写备份代码吗?
编辑:作为测试,我关闭了javascript.Facebook不起作用.
编辑:我了解视障用户,但如果他们的经验有问题,人们是否关心(严厉,是)?不听起来不尊重,但不遵守严格的标准也会疏远使用Internet Explorer 4和5的人,但我们似乎并不关心他们......?
编辑:考虑到有多少人使用JQuery和其他groovy插件库,说人们应该这样做似乎是一个非常自动的响应.
编辑:我尝试了一堆财富500强网站,到目前为止,我尝试过的网站中有70%已经破了
Dell
Walmart
Fedex
Intel
Coca Cola
Run Code Online (Sandbox Code Playgroud) 我正在开发一个Web应用程序(J2EE),我想知道可以从浏览器处理双重帖子的选项.
我过去看过和使用过的解决方案都是客户端的:
如果可能的话,我更愿意实现服务器端解决方案.有没有比我上面提到的更好的方法,或者客户端解决方案最好?
我提出了一种技术,通过返回/转发或刷新页面来防止重复表单提交.我想在这里讨论它,我已经测试了一个不在生产环境中的样本,你可以识别的缺陷是什么?
请注意,我很清楚使用表单令牌,它将保护您免受CSRF攻击,并且未在以下步骤中添加.
- 为每个表单生成表单ID,并将其用作表单中的隐藏字段:
$formid = microtime(true)*10000;
Run Code Online (Sandbox Code Playgroud)
- 表格提交:
从数据验证
计算表单字段数据的哈希值
$allvals = '';
foreach($_POST as $k=>$v){
$allvals .= $v;
}
$formHash = sha1($allvals);
Run Code Online (Sandbox Code Playgroud)通过与先前保存的哈希进行比较来验证表单哈希.会话值通过$ formid变量绑定到每个表单.
$allowAction = true;
if(isset($_SESSION['formHash'][$_POST['formid']]) && ($_SESSION['formHash'][$_POST['formid']] == $formHash)){
$allowAction = false;
}
Run Code Online (Sandbox Code Playgroud)如果保存了数据(例如,保存到数据库),请将表单哈希保存到会话中:
$_SESSION['formHash'][$_POST['formid']] = $formHash;
Run Code Online (Sandbox Code Playgroud)完整版代码:http: //thebusy.me/2011/01/06/preventing-duplicate-form-submissions/
完全重复:如何处理服务器端的多个提交
手头的一般任务:防止在基于多用户Web的应用程序中提交双表单.想想金融交易.
我有两种方法可以串联使用:
我正在寻找主题专家来贡献他们的最佳实践以及深奥的技巧.可以是任何语言和框架,但Django特别感兴趣.网上已经写了很多关于手头任务的内容,但最好有这里展示的最佳实践.
我有以下控制器:
[HttpPost]
public ActionResult SomeMethod(string foo, obj bar)
{
//Some Logic
}
Run Code Online (Sandbox Code Playgroud)
现在假设从一个Button或Ajax(带有一些编辑)调用Action,我不想收到双重请求.
从服务器端处理它的最佳方法是什么?
您首先必须定义符合双重请求标准的时间间隔 - Jonesopolis
让我们假设在这种情况下,双重请求是指第一次和第二次呼叫之间的时间差小于1s
我正在做在线出租车预订服务,
一旦用户成功完成了他的旅程,
我们正在显示感谢预订,我们会显示预订ID,有些人他们会点击F5
键,所以页面刷新并插入新条目,
所以我想在我的cashthankyou你页面上停用F%,
谢谢Bharanikumar