我陷入了一个问题,我的webservice (用Spring编写)需要5-6分钟才能得到http响应。我从角发送了一个http post请求,但是chrome等待了2分钟就给了我一个空响应,因为没有来自服务器的响应。但是服务器将在5分钟后给出一个响应。那么我如何实现这个场景,因为我认为我的http连接在2分钟后就关闭了,我想将它延长到5-6分钟。FYI我已经使用了rxjs超时函数,但是它不起作用,默认的2分钟超时总是获胜。谢谢
发布于 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重写默认超时将解决此问题。
{
"/api/*": {
"target": {
"host": "localhost",
"protocol": "http:",
"port": 8080
},
"secure": false,
"changeOrigin": true,
"logLevel": "debug",
"timeout":360000
}
}您还需要启用对RESTful Web服务的跨源请求,在控制器中使用@CrossOrigin注释,link.The @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服务器及其配置。
https://stackoverflow.com/questions/49569764
复制相似问题