调用ajax来了解信用

Calling ajax to know credits

本文关键字:了解 ajax 调用      更新时间:2023-09-26

在我的一个用户意识到一个动作之前,我需要知道他们有多少学分才能完成这个动作。

我使用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建议,并假设您可以返回一个布尔值来验证用户信用(而不是在客户端上检查)。