Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xjbieke
axios
提交
10eb2386
A
axios
项目概览
xjbieke
/
axios
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
A
axios
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
10eb2386
编写于
6月 23, 2016
作者:
M
Matt Zabriskie
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Move transform response logic from adapters to dispatcher
上级
e833a2f7
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
20 addition
and
16 deletion
+20
-16
lib/adapters/README.md
lib/adapters/README.md
+3
-7
lib/adapters/http.js
lib/adapters/http.js
+3
-2
lib/adapters/xhr.js
lib/adapters/xhr.js
+5
-7
lib/core/dispatchRequest.js
lib/core/dispatchRequest.js
+9
-0
未找到文件。
lib/adapters/README.md
浏览文件 @
10eb2386
...
...
@@ -6,7 +6,6 @@ The modules under `adapters/` are modules that handle dispatching a request and
```
js
var
settle
=
require
(
'
./../core/settle
'
);
var
transformData
=
require
(
'
./../core/transformData
'
);
module
.
exports
myAdapter
(
resolve
,
reject
,
config
)
{
// At this point:
...
...
@@ -14,15 +13,11 @@ module.exports myAdapter(resolve, reject, config) {
// - request transformers have already run
// - request interceptors have already run
// Make the request using config provided
/
// Make the request using config provided
// Upon response settle the Promise
var
response
=
{
data
:
transformData
(
responseData
,
responseHeaders
,
config
.
transformResponse
),
data
:
responseData
,
status
:
request
.
status
,
statusText
:
request
.
statusText
,
headers
:
responseHeaders
,
...
...
@@ -33,6 +28,7 @@ module.exports myAdapter(resolve, reject, config) {
settle
(
resolve
,
reject
,
response
);
// From here:
// - response transformers will run
// - response interceptors will run
}
```
lib/adapters/http.js
浏览文件 @
10eb2386
...
...
@@ -2,7 +2,6 @@
var
utils
=
require
(
'
./../utils
'
);
var
settle
=
require
(
'
./../core/settle
'
);
var
transformData
=
require
(
'
./../core/transformData
'
);
var
buildURL
=
require
(
'
./../helpers/buildURL
'
);
var
http
=
require
(
'
http
'
);
var
https
=
require
(
'
https
'
);
...
...
@@ -117,6 +116,7 @@ module.exports = function httpAdapter(resolve, reject, config) {
config
:
config
,
request
:
req
};
if
(
config
.
responseType
===
'
stream
'
)
{
response
.
data
=
stream
;
settle
(
resolve
,
reject
,
response
);
...
...
@@ -141,7 +141,8 @@ module.exports = function httpAdapter(resolve, reject, config) {
if
(
config
.
responseType
!==
'
arraybuffer
'
)
{
responseData
=
responseData
.
toString
(
'
utf8
'
);
}
response
.
data
=
transformData
(
responseData
,
res
.
headers
,
config
.
transformResponse
);
response
.
data
=
responseData
;
settle
(
resolve
,
reject
,
response
);
});
}
...
...
lib/adapters/xhr.js
浏览文件 @
10eb2386
...
...
@@ -2,7 +2,6 @@
var
utils
=
require
(
'
./../utils
'
);
var
settle
=
require
(
'
./../core/settle
'
);
var
transformData
=
require
(
'
./../core/transformData
'
);
var
buildURL
=
require
(
'
./../helpers/buildURL
'
);
var
parseHeaders
=
require
(
'
./../helpers/parseHeaders
'
);
var
isURLSameOrigin
=
require
(
'
./../helpers/isURLSameOrigin
'
);
...
...
@@ -24,7 +23,10 @@ module.exports = function xhrAdapter(resolve, reject, config) {
// For IE 8/9 CORS support
// Only supports POST and GET calls and doesn't returns the response headers.
// DON'T do this for testing b/c XMLHttpRequest is mocked, not XDomainRequest.
if
(
process
.
env
.
NODE_ENV
!==
'
test
'
&&
typeof
window
!==
'
undefined
'
&&
window
.
XDomainRequest
&&
!
(
'
withCredentials
'
in
request
)
&&
!
isURLSameOrigin
(
config
.
url
))
{
if
(
process
.
env
.
NODE_ENV
!==
'
test
'
&&
typeof
window
!==
'
undefined
'
&&
window
.
XDomainRequest
&&
!
(
'
withCredentials
'
in
request
)
&&
!
isURLSameOrigin
(
config
.
url
))
{
request
=
new
window
.
XDomainRequest
();
loadEvent
=
'
onload
'
;
xDomain
=
true
;
...
...
@@ -60,11 +62,7 @@ module.exports = function xhrAdapter(resolve, reject, config) {
var
responseHeaders
=
'
getAllResponseHeaders
'
in
request
?
parseHeaders
(
request
.
getAllResponseHeaders
())
:
null
;
var
responseData
=
!
config
.
responseType
||
config
.
responseType
===
'
text
'
?
request
.
responseText
:
request
.
response
;
var
response
=
{
data
:
transformData
(
responseData
,
responseHeaders
,
config
.
transformResponse
),
data
:
responseData
,
// IE sends 1223 instead of 204 (https://github.com/mzabriskie/axios/issues/201)
status
:
request
.
status
===
1223
?
204
:
request
.
status
,
statusText
:
request
.
status
===
1223
?
'
No Content
'
:
request
.
statusText
,
...
...
lib/core/dispatchRequest.js
浏览文件 @
10eb2386
...
...
@@ -56,6 +56,15 @@ module.exports = function dispatchRequest(config) {
}
catch
(
e
)
{
reject
(
e
);
}
}).
then
(
function
onFulfilled
(
response
)
{
// Transform response data
response
.
data
=
transformData
(
response
.
data
,
response
.
headers
,
config
.
transformResponse
);
return
response
;
});
};
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录