Angular 2.0中的HTTP请求和响应

Dar*_*ada 5 http connection-timeout angular

我陷入了一个问题,我的Web服务(用Spring Boot编写)需要5到6分钟才能获得http响应。我从angular发送了一个http post请求,但是chrome仅等待2分钟就给了我一个空响应,因为服务器没有响应。但是服务器将在5分钟后给出响应。所以我应该如何实现这种情况,因为我认为我的http连接在2分钟后关闭,并且我想将其延长到5-6分钟。仅供参考,我已经使用过rxjs超时功能,但是它不起作用,默认的2分钟超时总会获胜。谢谢

Vik*_*kas 8

问题不在于chrome您必须使用Proxying supportdev-server来使用,http-proxy-middleware package并且此软件包中提供的代理选项来自底层http-proxy library 其中之一是

proxyTimeout

代理未收到响应的超时时间(以毫秒为单位)

默认值为〜120秒,如果backend未能在规定的时间内做出响应,则会发出新的请求。覆盖"timeout":360000代理配置文件中的默认超时将解决此问题。

{
  "/api/*": {
     "target":  {
       "host": "localhost",
       "protocol": "http:",
       "port": 8080
     },
     "secure": false,
     "changeOrigin": true,
     "logLevel": "debug",
     "timeout":360000

  }
}
Run Code Online (Sandbox Code Playgroud)

您还需要使用@CrossOrigin控制器链接中的注释为RESTful Web服务启用跨域请求。 @CrossOrigin用于允许跨域资源共享(CORS),以便我们在不同服务器上运行的角度应用程序可以从浏览器。

    @CrossOrigin(origins = "http://localhost:4200", maxAge = 3600)
    @RestController
    @RequestMapping({"/api"})
    public class UserController {
           ......
}
Run Code Online (Sandbox Code Playgroud)

我假设您的angular在port以上配置的4200上运行,您可以使用您的API。

注意:该proxy配置用于在通过运行运行开发服务器时代理调用ng serve。运行后,ng build您将负责Web服务器及其配置