首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角度2.0中的Http请求和响应

角度2.0中的Http请求和响应
EN

Stack Overflow用户
提问于 2018-03-30 06:47:52
回答 1查看 1.8K关注 0票数 5

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-30 07:24:21

问题不在于http-proxy library.,您必须使用的是Proxying support,其中dev-server使用的是http-proxy-middleware package,而该包中提供的代理选项来自底层的Proxying support,其中之一是

proxyTimeout: 代理未收到响应时的超时(在millis中)

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

代码语言:javascript
复制
{
  "/api/*": {
     "target":  {
       "host": "localhost",
       "protocol": "http:",
       "port": 8080
     },
     "secure": false,
     "changeOrigin": true,
     "logLevel": "debug",
     "timeout":360000
  
  }
}

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

代码语言:javascript
复制
    @CrossOrigin(origins = "http://localhost:4200", maxAge = 3600)
    @RestController
    @RequestMapping({"/api"})
    public class UserController {
           ......
}

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

注意事项proxy配置的目的是在通过ng serve运行开发服务器时代理调用。运行ng build之后,您将负责web服务器及其配置。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49569764

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档