mirror of
https://gitee.com/dromara/go-view.git
synced 2025-02-25 00:33:00 +08:00
commit
4d68a81ab4
@ -80,6 +80,32 @@ export const http = (type?: RequestHttpEnum) => {
|
|||||||
return get
|
return get
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
const prefix = 'javascript:'
|
||||||
|
// 对输入字符进行转义处理
|
||||||
|
export const translateStr = (target: string | object) => {
|
||||||
|
if (typeof target === 'string') {
|
||||||
|
if (target.startsWith(prefix)) {
|
||||||
|
const funcStr = target.split(prefix)[1]
|
||||||
|
let result;
|
||||||
|
try {
|
||||||
|
result = new Function(`${funcStr}`)()
|
||||||
|
} catch (error) {
|
||||||
|
console.log(error)
|
||||||
|
window['$message'].error('js内容解析有误!')
|
||||||
|
}
|
||||||
|
return result
|
||||||
|
} else {
|
||||||
|
return target
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (const key in target) {
|
||||||
|
if (Object.prototype.hasOwnProperty.call(target, key)) {
|
||||||
|
const subTarget = (target as any)[key];
|
||||||
|
(target as any)[key] = translateStr(subTarget)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return target
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* * 自定义请求
|
* * 自定义请求
|
||||||
@ -125,15 +151,17 @@ export const customizeHttp = (targetParams: RequestConfigType, globalParams: Req
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 处理头部
|
// 处理头部
|
||||||
const headers: RequestParamsObjType = {
|
let headers: RequestParamsObjType = {
|
||||||
...globalRequestParams.Header,
|
...globalRequestParams.Header,
|
||||||
...targetRequestParams.Header,
|
...targetRequestParams.Header,
|
||||||
}
|
}
|
||||||
|
headers = translateStr(headers)
|
||||||
|
|
||||||
// data 参数
|
// data 参数
|
||||||
let data: RequestParamsObjType | FormData | string = {}
|
let data: RequestParamsObjType | FormData | string = {}
|
||||||
// params 参数
|
// params 参数
|
||||||
let params: RequestParamsObjType = targetRequestParams.Params
|
let params: RequestParamsObjType = { ...targetRequestParams.Params }
|
||||||
|
params = translateStr(params)
|
||||||
// form 类型处理
|
// form 类型处理
|
||||||
let formData: FormData = new FormData()
|
let formData: FormData = new FormData()
|
||||||
formData.set('default', 'defaultData')
|
formData.set('default', 'defaultData')
|
||||||
@ -145,20 +173,20 @@ export const customizeHttp = (targetParams: RequestConfigType, globalParams: Req
|
|||||||
|
|
||||||
case RequestBodyEnum.JSON:
|
case RequestBodyEnum.JSON:
|
||||||
headers['Content-Type'] = ContentTypeEnum.JSON
|
headers['Content-Type'] = ContentTypeEnum.JSON
|
||||||
data = JSON.parse(targetRequestParams.Body['json'])
|
data = translateStr(JSON.parse(targetRequestParams.Body['json']))
|
||||||
// json 赋值给 data
|
// json 赋值给 data
|
||||||
break
|
break
|
||||||
|
|
||||||
case RequestBodyEnum.XML:
|
case RequestBodyEnum.XML:
|
||||||
headers['Content-Type'] = ContentTypeEnum.XML
|
headers['Content-Type'] = ContentTypeEnum.XML
|
||||||
// xml 字符串赋值给 data
|
// xml 字符串赋值给 data
|
||||||
data = targetRequestParams.Body['xml']
|
data = translateStr(targetRequestParams.Body['xml'])
|
||||||
break
|
break
|
||||||
|
|
||||||
case RequestBodyEnum.X_WWW_FORM_URLENCODED:
|
case RequestBodyEnum.X_WWW_FORM_URLENCODED:
|
||||||
headers['Content-Type'] = ContentTypeEnum.FORM_URLENCODED
|
headers['Content-Type'] = ContentTypeEnum.FORM_URLENCODED
|
||||||
const bodyFormData = targetRequestParams.Body['x-www-form-urlencoded']
|
const bodyFormData = targetRequestParams.Body['x-www-form-urlencoded']
|
||||||
for (const i in bodyFormData) formData.set(i, bodyFormData[i])
|
for (const i in bodyFormData) formData.set(i, translateStr(bodyFormData[i]))
|
||||||
// FormData 赋值给 data
|
// FormData 赋值给 data
|
||||||
data = formData
|
data = formData
|
||||||
break
|
break
|
||||||
@ -167,7 +195,7 @@ export const customizeHttp = (targetParams: RequestConfigType, globalParams: Req
|
|||||||
headers['Content-Type'] = ContentTypeEnum.FORM_DATA
|
headers['Content-Type'] = ContentTypeEnum.FORM_DATA
|
||||||
const bodyFormUrlencoded = targetRequestParams.Body['form-data']
|
const bodyFormUrlencoded = targetRequestParams.Body['form-data']
|
||||||
for (const i in bodyFormUrlencoded) {
|
for (const i in bodyFormUrlencoded) {
|
||||||
formData.set(i, bodyFormUrlencoded[i])
|
formData.set(i, translateStr(bodyFormUrlencoded[i]))
|
||||||
}
|
}
|
||||||
// FormData 赋值给 data
|
// FormData 赋值给 data
|
||||||
data = formData
|
data = formData
|
||||||
@ -180,11 +208,17 @@ export const customizeHttp = (targetParams: RequestConfigType, globalParams: Req
|
|||||||
data = requestSQLContent
|
data = requestSQLContent
|
||||||
}
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
const url = (new Function("return `" + `${requestOriginUrl}${requestUrl}`.trim() + "`"))();
|
||||||
return axiosInstance({
|
return axiosInstance({
|
||||||
url: `${requestOriginUrl}${requestUrl}`,
|
url,
|
||||||
method: requestHttpType,
|
method: requestHttpType,
|
||||||
data,
|
data,
|
||||||
params,
|
params,
|
||||||
headers
|
headers
|
||||||
})
|
})
|
||||||
|
} catch (error) {
|
||||||
|
console.log(error)
|
||||||
|
window['$message'].error('URL地址格式有误!')
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user