2012-09-12 32 views
0

我正在使用ASP.Net Web窗体,我有一个按钮客户端,通过jquery ajax将数据发布到webmethod服务器端。我的问题是,如何防止webmethod接收用户多次请求单击按钮多次,如果可能,我希望此代码成为服务器端。防止在服务器端重复ajax帖子到webmethod

回答

1

一旦点击页面上的按钮,将其禁用,以便第二次点击不会注册,然后发送请求并在获得响应后采取适当的操作。

要做到这一点服务器端会很困难,您可能需要序列化请求,然后将每个请求与最近的历史进行比较,并确定它是否重复。这可能是困难的,因为可能存在合法的重复,并且区分它们可能是困难的。

+0

您认为.on()和.off()对于按钮的点击事件的处理更好,然后使用会话来存储请求的所有参数,然后检查服务器端会话的下一个请求? @Bill –

+0

我用.on()设置了按钮,然后就在ajax之前,我可以使用.off(),然后成功:我可以把它重新打开() - 有时是因为什么原因,它只是没有没有工作,然后再次点击按钮使其工作,所以我认为服务器端是一个更好的检查方式 - 我总是更舒适的一切服务器端 –

+0

是的,因为重复检查可以变得非常复杂。如果请求进入并且由服务器同时处理,那么您必须以某种方式检测并防止这会变得复杂。 – Bill