在某些使用草率Web代理的客户端中,我发现了一个可变的用例,根据W3,我发现:
如果HTTP / 1.1客户端发送的请求包含请求正文,但不包含带有“ 100-continue”期望的Expect请求标头字段,并且该客户端未直接连接到HTTP / 1.1源服务器,并且如果客户端在收到来自服务器的任何状态之前看到连接已关闭,则客户端应重试该请求。
因此,我试图将Expect: 100-continue
标头添加到默认标头的属性中,以避免将来发生任何重复的过程。但是我注意到了,或者插件或浏览器正在将其从请求标头中删除。
我已经尝试过其中一种情况
this.configure(config => {
config
.withBaseUrl(baseURL)
.withDefaults({
credentials: 'same-origin',
headers: {
Accept: 'application/json',
'X-Requested-With': 'Fetch',
'accept-enconding': 'gzip',
'Expect': '100-continue',
/*global __VERSION__ */
'X-WebApp-Version': __VERSION__
}
})
.withInterceptor({
request(request) {
let token = authService.getToken();
if (token) {
request.headers.set('Authorization', `Bearer ${token}`);
}
return request;
}
});
});
和
this.configure(config => {
config
.withBaseUrl(baseURL)
.withDefaults({
credentials: 'same-origin',
headers: {
Accept: 'application/json',
'X-Requested-With': 'Fetch',
'accept-enconding': 'gzip',
/*global __VERSION__ */
'X-WebApp-Version': __VERSION__
}
})
.withInterceptor({
request(request) {
let token = authService.getToken();
if (token) {
request.headers.set('Authorization', `Bearer ${token}`);
}
if(request.method === 'POST') {
request.headers.set('Expect', '100-continue');
}
return request;
}
});
});
是否有人试图避免默认情况下重复请求? 是否可以在aurelia-fetch-client插件中配置重复拦截器?
感谢您的支持