Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
高东东-金蝶建发
/
jf-yzj-resume
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
99216db5
authored
Nov 28, 2023
by
golton_gao
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
update: 优化代码
parent
61d0692d
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
40 additions
and
17 deletions
package.json
src/js/polyfill/request.js
package.json
View file @
99216db5
...
@@ -5,11 +5,11 @@
...
@@ -5,11 +5,11 @@
"author"
:
"liyj31 <yujun2.li@meicloud.com>"
,
"author"
:
"liyj31 <yujun2.li@meicloud.com>"
,
"private"
:
true
,
"private"
:
true
,
"scripts"
:
{
"scripts"
:
{
"dev"
:
"cross-env PACK_ENV=dev node build/dev-server.js"
,
"dev"
:
"cross-env PACK_ENV=dev
&&
node build/dev-server.js"
,
"start"
:
"npm run dev"
,
"start"
:
"npm run dev"
,
"build"
:
"npm run build:test"
,
"build"
:
"npm run build:test"
,
"build:test"
:
"cross-env PACK_ENV=test node build/build.js"
,
"build:test"
:
"cross-env PACK_ENV=test
&&
node build/build.js"
,
"build:prod"
:
"cross-env PACK_ENV=product node build/build.js"
,
"build:prod"
:
"cross-env PACK_ENV=product
&&
node build/build.js"
,
"build:report"
:
"npm run build --report"
"build:report"
:
"npm run build --report"
},
},
"dependencies"
:
{
"dependencies"
:
{
...
...
src/js/polyfill/request.js
View file @
99216db5
...
@@ -12,6 +12,10 @@ function isObject(value) {
...
@@ -12,6 +12,10 @@ function isObject(value) {
return
value
!==
null
&&
typeof
value
===
'object'
return
value
!==
null
&&
typeof
value
===
'object'
}
}
function
isString
(
fd
)
{
return
Object
.
prototype
.
toString
.
call
(
fd
)
===
'[object String]'
}
function
isFormData
(
fd
)
{
function
isFormData
(
fd
)
{
return
Object
.
prototype
.
toString
.
call
(
fd
)
===
'[object FormData]'
return
Object
.
prototype
.
toString
.
call
(
fd
)
===
'[object FormData]'
}
}
...
@@ -35,7 +39,7 @@ function params2object(url) {
...
@@ -35,7 +39,7 @@ function params2object(url) {
.
forEach
((
n
)
=>
{
.
forEach
((
n
)
=>
{
n
=
n
.
split
(
'='
)
n
=
n
.
split
(
'='
)
if
(
n
.
length
===
2
)
{
if
(
n
.
length
===
2
)
{
params
[
n
[
0
]]
=
n
[
1
]
params
[
n
[
0
]]
=
decodeURIComponent
(
n
[
1
])
}
}
})
})
}
}
...
@@ -43,6 +47,7 @@ function params2object(url) {
...
@@ -43,6 +47,7 @@ function params2object(url) {
}
}
function
request
(
opt
)
{
function
request
(
opt
)
{
let
serializer
=
opt
.
serializer
||
'form'
opt
=
opt
||
{}
opt
=
opt
||
{}
if
(
!
opt
.
url
)
{
if
(
!
opt
.
url
)
{
return
Promise
.
reject
(
'interface url is required!'
)
return
Promise
.
reject
(
'interface url is required!'
)
...
@@ -78,35 +83,53 @@ function request(opt) {
...
@@ -78,35 +83,53 @@ function request(opt) {
// post非json即是form。
// post非json即是form。
if
(
opt
.
method
.
toLowerCase
()
===
'post'
)
{
if
(
opt
.
method
.
toLowerCase
()
===
'post'
)
{
var
data
=
opt
.
data
var
data
=
opt
.
data
if
(
isFormData
(
data
))
{
const
headers
=
opt
.
headers
opt
.
headers
=
Object
.
assign
(
opt
.
headers
||
{},
{
const
contentType
=
headers
[
'content-type'
]
||
headers
[
'Content-Type'
]
||
headers
[
'CONTENT-TYPE'
]
||
''
'Content-Type'
:
'application/x-www-form-urlencoded'
if
(
contentType
.
indexOf
(
'application/json'
)
!==
-
1
)
{
})
serializer
=
'json'
}
if
((
serializer
===
'form'
)
&&
isFormData
(
data
))
{
opt
.
data
=
formData2obj
(
data
)
opt
.
data
=
formData2obj
(
data
)
}
else
if
(
isObject
(
data
))
{
}
opt
.
headers
=
Object
.
assign
(
opt
.
headers
||
{},
{
else
if
(
isString
(
data
))
{
'Content-Type'
:
'application/json;charset=UTF-8'
if
(
serializer
===
'json'
)
{
})
try
{
opt
.
data
=
JSON
.
parse
(
data
)
}
catch
(
error
)
{
opt
.
data
=
{}
}
}
else
{
opt
.
data
=
params2object
(
data
)
}
}
}
}
}
// 处理header
// 处理header
opt
.
headers
=
opt
.
headers
||
{}
opt
.
headers
=
opt
.
headers
||
{}
const
headers
=
{}
// headers字段值必须是字符串型
// headers字段值必须是字符串型
Object
.
keys
(
opt
.
headers
).
forEach
(
function
(
key
)
{
Object
.
keys
(
opt
.
headers
).
forEach
(
function
(
key
)
{
var
val
=
opt
.
headers
[
key
]
var
val
=
opt
.
headers
[
key
]
if
(
val
)
{
var
type
=
typeof
val
var
type
=
typeof
val
if
(
type
===
'undefined'
)
{
if
(
type
!==
'string'
)
{
delete
opt
.
headers
[
key
]
val
=
val
+
''
}
else
if
(
type
!==
'string'
)
{
}
opt
.
headers
[
key
]
=
val
+
''
// 因content-type可能存在大小写不规范,这里先过滤掉,后面根据serializer统一添加
var
_key
=
key
.
toLowerCase
()
if
(
_key
!==
'content-type'
)
{
headers
[
_key
]
=
val
}
}
}
})
})
// 根据serializer统一添加content-type
headers
[
'content-type'
]
=
serializer
===
'json'
?
'application/json'
:
'application/x-www-form-urlencoded'
opt
.
headers
=
headers
return
new
Promise
(
function
(
resolve
,
reject
)
{
return
new
Promise
(
function
(
resolve
,
reject
)
{
qing
.
call
(
'request'
,
{
qing
.
call
(
'request'
,
{
url
:
opt
.
url
,
url
:
opt
.
url
,
method
:
opt
.
method
,
method
:
opt
.
method
.
toUpperCase
()
,
headers
:
opt
.
headers
,
headers
:
opt
.
headers
,
header
:
opt
.
headers
,
header
:
opt
.
headers
,
data
:
opt
.
data
||
{},
data
:
opt
.
data
||
{},
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment