【问题标题】:send request from server to web application将请求从服务器发送到 Web 应用程序
【发布时间】:2019-01-16 01:43:45
【问题描述】:

我不确定我的标题是否能很好地解释我的问题,所以我会在这里尝试解释。

我的服务器上有一个 springBoot 应用程序,并使用 angular 作为前端。

我向我的服务器发送一个请求:

@PostMapping(value="/setup/rate/electricityToImport")
public void updateNewElectricityRate( HttpServletRequest request) throws IOException, SAXException, ParseException {
    String rate = request.getParameter("electricityToImport");      

    system.out.println(rate);

    //here i will save rate in file.

}
var rate = this.myGridImport.getselectedcell()['value'];
console.log(rate)

$.ajax({
  url: "/api/setup/rate/electricityToImport",
  type: 'POST',
  dataType: "text",
  data: 'electricityToImport=' + rate
})

现在我想知道文件是否已保存并在前面显示“文件已保存”(角度应用程序) 但是我怎样才能将保存完成的消息发送到我的前面

非常感谢您的帮助! 数学

【问题讨论】:

  • 你是说文件在客户端,你想用网络浏览器发送,然后保存在服务器上?
  • 不完全是,我用我的 Web 应用程序修改了我服务器上的文件,修改后,我将修改发送到我的服务器以保存新闻值。保存后,我想告诉我的客户,我的文件保存已经完成了
  • 你可以使用 ajax onsuccess - 见stackoverflow.com/questions/5316697/…

标签: java angular spring-boot


【解决方案1】:

@mavriksc 已经展示了正确的方法。通常你可以通过两种方式实现:

共享服务

如果您使用共享全局服务来处理请求,您可以在那里处理响应错误(如果没有错误,那么您可以告诉客户端保存成功,对吗?)。

可能是这样的:

getJson(): Observable<string> {
    return this.http
      .get(a_url_here)
      .pipe(
      map((res: any) => {
        console.log("Data got: ");
        console.log(res);
        return res;
      }),
      catchError(error => this.handleError<string>(error, "Network Error!"))
    );
  }

独立请求

如果您直接在组件中请求或在那里处理错误,您可以与subscribe() 一起实现,如下所示:

this.getYourData(your_url).subscribe(jsonStr => this.testContent = jsonStr, 
                              error => this.handleError<string>(error, "Network Error!"));

【讨论】:

    【解决方案2】:

    如果您从控制器抛出异常,Web 框架将返回错误代码,否则返回 200OK 。所以在你的角度前端,你的客户会有一些 Observable 作为对这个请求的响应。在complete 可以显示保存的文件。在error 中,您可以显示一些相关信息。

    【讨论】:

      猜你喜欢
      • 2022-12-03
      • 2019-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-21
      • 2020-03-24
      相关资源
      最近更新 更多