Angular 2.0中的Http请求和响应

时间:2018-03-30 06:47:52

标签: angular http connection-timeout

我陷入了一个问题,我的webservice(用Spring编写)用了5-6分钟来获得http响应。 我发送了一个来自angular的http post请求,但chrome等待只有2分钟给我一个null响应,因为没有来自服务器的响应。 但服务器将在5分钟后给出响应。 那么我怎么能实现这个场景,因为我认为我的http连接在2分钟后关闭,我想把它延长到5-6分钟。 FYI 我已经使用了rxjs超时功能,但它不起作用,默认超时2分钟总是获胜。 谢谢

1 个答案:

答案 0 :(得分:4)

问题不在chrome您必须使用 Proxying support ,其中dev-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

  }
}

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

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

我认为你的角度在port 4200上运行,配置如上,你可以使用你的API。

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

相关问题