【问题标题】:pass selected row elements from angular datatable to spring boot将选定的行元素从角度数据表传递到弹簧靴
【发布时间】:2019-03-12 12:04:45
【问题描述】:

我需要实现一种安全的方法来将所选行 ID 的数据存储在内存中 Angular 7 的材料数据表中,并将它们作为会话而不是在 RequestBody 中传递给 Spring Boot 应用程序。在 Angular 中使用 localstorage 或 sessionStorage 有可能还是不安全?有没有其他方法可以解决这个问题?我不一定需要发布示例代码。

【问题讨论】:

    标签: angular spring spring-boot


    【解决方案1】:

    您的服务应该如下所示。

    @Injectable()
    export class YourService {
    
      public selectedData: any;
    
      constructor() {        
      }
    
      setSelectedData(selectedData) {
        this.selectedData= selectedData;
      }
      getSelectedData() {
        return this.selectedData;
      }
    
    }
    

    从您的组件到设置值,如下所示。

    this._YourService.setSelectedData(selectedData); 
    

    从您的组件中获取如下所示的值。

    let selected = this._YourService.getSelectedData();
    

    必须将服务添加到控制器中...

    【讨论】:

      【解决方案2】:

      您可以使用 get 和 set 方法创建公共服务。这样您就可以在所选行上设置值。您可以随时检索它。

      【讨论】:

      • 角度服务?如果您必须处理大量数据怎么办?
      • 您可以存储任意数量的数据。但它可能会降低应用程序的性能。尝试存储参考,使用参考可以重新填充数据。 localstorage 或 sessionStorage 最大存储大小 5MB 到 10MB 最大。
      • 你能提供一个关于存储引用或关于使用 setter 和 getter 创建服务的示例或教程链接吗?这将非常有帮助。非常感谢!
      【解决方案3】:

      您可以通过使用此方法将数据转换为 base64 来存储数据,然后将该 base64 数据发送到请求中。

      let data = btoa("password");
      

      如果您将数据存储到 localStorage 或 sessionStorage 但您无法从后端访问 localStorage 或 SessionStorage,因此您需要通过请求传递数据。

      【讨论】:

      • 是的,但是有人可以更改请求并使用随机值调用服务吗?
      • 哦,好吧,您也可以使用 Socket.IO 发送数据。 Socket.IO 主要是为客户端和服务器之间的实时和双向连接而设计的,在某些应用程序中不需要保持永久连接。另一方面,Ajax 异步连接应该通过 HTTP 连接设置阶段并随每个请求发送标头数据和所有 cookie。
      猜你喜欢
      • 2020-08-06
      • 2023-03-29
      • 2022-07-21
      • 2018-08-09
      • 2019-05-17
      • 2019-05-03
      • 2018-02-14
      • 1970-01-01
      • 2017-12-22
      相关资源
      最近更新 更多