Angular 2.0 中的 Http 请求和响应
Http request and response in Angular 2.0
我遇到了一个问题,我的 Web 服务(在 Spring 引导中编写)需要 5-6 分钟才能获得 http 响应。
我从 angular 发送了一个 http post 请求,但是 chrome 只等了 2 分钟就给了我一个空响应,因为没有来自服务器的响应。
但服务器会在 5 分钟后给出响应。
那么我该如何实现这种情况,因为我认为我的 http 连接会在 2 分钟后关闭,我想将其延长至 5-6 分钟。
供参考
我已经使用了 rxjs 超时功能,但它不起作用,默认超时 2 分钟总是有效。
谢谢
问题不在于 chrome
您必须使用 Proxying support
in which dev-server makes use http-proxy-middleware package
and the proxy options provided in this package is from underlying http-proxy library
.
其中之一是
proxyTimeout:
timeout (in millis) when the proxy receives no response
默认值为 ~120 秒,如果 backend
未能在规定时间内响应,则会发出新请求。
在代理配置文件中使用 "timeout":360000
覆盖默认超时将解决问题。
{
"/api/*": {
"target": {
"host": "localhost",
"protocol": "http:",
"port": 8080
},
"secure": false,
"changeOrigin": true,
"logLevel": "debug",
"timeout":360000
}
}
您还需要在控制器中使用 @CrossOrigin
注释启用 Cross-Origin 对 RESTful Web 服务的请求 link.The @CrossOrigin
用于允许 Cross-Origin 资源共享 (CORS),以便我们在不同服务器上的 angular 应用程序 运行 可以从浏览器使用这些 API .
@CrossOrigin(origins = "http://localhost:4200", maxAge = 3600)
@RestController
@RequestMapping({"/api"})
public class UserController {
......
}
我假设你的 angular 在 port
4200 上 运行 具有上述配置,你可以使用你的 API。
注意:proxy
配置用于在通过 ng serve
连接开发服务器时 运行 代理调用。在您 运行 ng build
之后,您负责 Web 服务器及其配置
我遇到了一个问题,我的 Web 服务(在 Spring 引导中编写)需要 5-6 分钟才能获得 http 响应。 我从 angular 发送了一个 http post 请求,但是 chrome 只等了 2 分钟就给了我一个空响应,因为没有来自服务器的响应。 但服务器会在 5 分钟后给出响应。 那么我该如何实现这种情况,因为我认为我的 http 连接会在 2 分钟后关闭,我想将其延长至 5-6 分钟。 供参考 我已经使用了 rxjs 超时功能,但它不起作用,默认超时 2 分钟总是有效。 谢谢
问题不在于 chrome
您必须使用 Proxying support
in which dev-server makes use http-proxy-middleware package
and the proxy options provided in this package is from underlying http-proxy library
.
其中之一是
proxyTimeout:
timeout (in millis) when the proxy receives no response
默认值为 ~120 秒,如果 backend
未能在规定时间内响应,则会发出新请求。
在代理配置文件中使用 "timeout":360000
覆盖默认超时将解决问题。
{
"/api/*": {
"target": {
"host": "localhost",
"protocol": "http:",
"port": 8080
},
"secure": false,
"changeOrigin": true,
"logLevel": "debug",
"timeout":360000
}
}
您还需要在控制器中使用 @CrossOrigin
注释启用 Cross-Origin 对 RESTful Web 服务的请求 link.The @CrossOrigin
用于允许 Cross-Origin 资源共享 (CORS),以便我们在不同服务器上的 angular 应用程序 运行 可以从浏览器使用这些 API .
@CrossOrigin(origins = "http://localhost:4200", maxAge = 3600)
@RestController
@RequestMapping({"/api"})
public class UserController {
......
}
我假设你的 angular 在 port
4200 上 运行 具有上述配置,你可以使用你的 API。
注意:proxy
配置用于在通过 ng serve
连接开发服务器时 运行 代理调用。在您 运行 ng build
之后,您负责 Web 服务器及其配置