2017-09-28 218 views
0

让我想象我的html页面中有三个按钮。第一个按钮用于选择汽车,第二个按钮用于租赁该汽车,而下一个按钮用于支付租金。所有这三个按钮都会发出ajax请求来在服务器中执行一些业务逻辑。当用户按下第一个按钮并且ajax请求正常时,我启用第二个按钮并禁用de第一个按钮,第二个按钮和第三个按钮也一样。默认情况下,所有按钮都被禁用如果ajax请求正常,则启用或禁用该功能。我认为启用或禁用按钮或权限是商务逻辑,应该不存在于视图中,而是存在于服务器中。我的意思是,根据他已经完成的操作,通过ajax请求获取用户拥有的权限会更好吗?演示逻辑或业务逻辑?

非常感谢

回答

1

有两个答案,我有:

  • 这是完全合理的有一个Ajax请求得到可用的状态转换。你把它看作是权限,但这不是真的。根据用户被允许执行的操作,权限在用户之间有所不同。这是基于业务规则给定特定状态的操作是有效的,这是获得请求的好方法。

  • 也就是说,在您使用AJAX时,在客户端和服务器上都有一个MVC模式是很常见的。也就是说,除了视图逻辑以外,在HTML页面中还有一些视图和控制器逻辑。这个逻辑实现了一些业务规则。 Angular和其他客户端框架使这样的模式更加明确。在这样的应用程序中,服务器视图层很薄。确保在您的服务器中执行重要的业务规则仍然很重要,以便攻击者不能在客户端上颠覆这些规则。在这样的应用程序中,只要服务器确保您没有选择租用或支付汽车费用,就可以在客户端启用按钮将是完全合理的。

1

如果你希望你的服务器端代码是否显示下一个按钮,你可以做这样的事情上决定:

$.get("/api/yourController/yourMethod") 
    .success(function (response) { 
     if (response == true){ //change this for your unique decision logic 
      // execute show button code 
     } 
    }); 

基于这些数据,您从您的服务器返回在response对象中,您可以控制下一个按钮是否出现在HTML中。