调用ajax来了解信用
Calling ajax to know credits
在我的一个用户意识到一个动作之前,我需要知道他们有多少学分才能完成这个动作。
我使用ajax调用来完成此操作,类似于以下内容:
jQuery.ajax({url: 'getCredit.php',
type: 'POST',
})
.done(function( data) {
if (data.credit >= 1) { do the action }
});
我的问题是:难道我的用户不能用chrome控制台或firebug"作弊"将var(data.credit)更改为始终>1吗?
要求他们赊账的最佳方式是什么?
编辑:我有一张表格,我想在他们点击提交按钮时检查信用,所以如果他们没有足够的信用,表格就不会发送。我认为这有点澄清了。
谢谢。
从不信任用户
实现这一点的最佳方法是始终在服务器中显示和执行操作。
您必须在服务器端再次检查它。从用户体验的角度来看,在提交表单之前检查信用对用户来说是好事,但无论如何,一旦在服务器端提交表单,你就必须再次检查信用。例如,由于您谈论的是当前用户:
if($current_user->credit>1)
doAction();
和表单验证一样,您必须在客户端和服务器端进行验证,永远不要信任用户。
在getCredit.php
中,您应该检查credit
并执行{ do the action }
。除非您想更改UI
,否则不需要返回客户端。这并不重要。
您可以简单地执行:
$.ajax({
type: 'POST',
url: 'yoururl',
success: function (data, textStatus, jqxhr) {
if (data.isValidCredit) {
//do the action
}
},
error: function (jqxhr, textStatus, errorThrown) {
//handle error
}
});
注意:iv'e使用了@Afonso-Matos建议,并假设您可以返回一个布尔值来验证用户信用(而不是在客户端上检查)。
相关文章:
- 无法在通过jQuery的ajax加载的页面中执行javascript
- 如何通过ajax刷新JSF填充的javascript变量
- 如何在php文件中获取$.post-ajax传递的值
- Replacing $ .ajax?
- 在使用Polymer'加载所有json文件后执行方法;s的核心ajax
- Ajax发布表单序列化,发布引号'
- 通过Ajax将JavaScript函数传递给PHP文件
- Ajax POST请求没有'我不了解PHP
- 深入了解敲除js中的Ajax样式
- 了解 JavaScript 事件处理和 ajax 请求
- 了解 $.ajax() 和 $.ajax().then 之间的区别
- 了解 Ajax 调用流
- 调用ajax来了解信用
- 了解jQuery.在jquery上下文中延迟.AJAX(再一次)
- 了解使用AJAX获取图表数据时的数据流
- 了解AJAX历史
- 了解跨域的东西和AJAX
- 需要了解 Ajax 响应代码中的 eval
- 了解 Ajax 成功回调如何在此 ReactJS 示例中更新状态
- 了解AJAX的功能及其局限性