Shaoyin Song
Shaoyin Song
@liyatang 测试了一下 Chrome 会把设置的 `headers` 全部改成小写,但 Firefox 下不会。可能是 Chrome 的 bug,你可以在这里提个 issue https://crbug.com/
@liyatang 赞高效率,原来这并不是 bug,我也学习了,顺便再补充一下: 根据 HTTP 规范(RFC 7230,RFC 2616),HTTP header 的 name 是**不区分大小写**的。 而且根据规范,Fetch 和 XHR's setRequestHeader() 都**应该**把 header 的 name 转成小写,只是有些浏览器没有转而已。
@gdzgshum 开启 cookie 试一下,参见: > Fetch 请求默认是不带 cookie 的,需要设置 fetch(url, {credentials: 'include'})
不应该每次都 set `PHPSESSID`,这样会被认为是新的会话。你查一下 http request header 信息,与 xhr 比较一下,看是不是有些header 信息漏了
@babizhu `npm install fetch-ie8 --save` 已更新
@babizhu 注意引用顺序,Promise 应该放最前面。如果你要兼容 IE8,还需要引入 es5-shim, es5-sham
我想到有两种,第二种 compose 起来简单些。 ``` js promise.progressed(progressFn).then(resolveFn, rejectFn) promise.then(resolveFn, rejectFn, progressFn) ```
@malcolmyu @Kaijun 完全可行
@liyatang ``` js export const setPromiseTimeout = function(promise, ms) { return new Promise((resolve, reject) => { setTimeout(() => { reject('request timeout'); }, ms); promise.then(resolve, reject); }); }; ```
@codering 需要设置 mode。默认是 `no-cors` 禁止跨域请求。`cors` 为支持跨域请求