safari post请求数据中多了个字段 MIME类型
safari post请求数据中多了个字段 “MIME类型”,而chrome是正常的
最近在开发中遇到一个奇怪的问题,求助大神们!
项目框架是vue的,请求用的是axios,后台是Java。我在axios上面封装了一层方法,做统一的接口处理,项目里所以请求都是调用这个方法的。axios向后台发送请求时,chrome浏览器是正常的,但是safari浏览器的请求数据中多了个字段 “MIME类型”,但是这个字段我是没有设置的
chrome浏览器是正确的
safari浏览器时错误的,请求数据会多了一个字段“MIME类型”
下面是我基于axios封装的请求方法
import qs from 'qs'
import axios from 'axios'
import signature from '../module/signature'
const request = axios.create({
timeout: 50000,
withCredentials: true
})
// 添加请求拦截器,POST传参序列化
request.interceptors.request.use(function (config) {
if (config.method === 'post' || config.method === 'put' || config.method === 'delete') {
// 序列化
config.data = qs.stringify(config.data)
}
return config
}, function (error) {
console.log(error)
return Promise.reject(error.data.msg)
})
// 添加响应拦截器,进行错误处理
request.interceptors.response.use(function (response) {
let res = response.data
// 处理错误
if (res.resultCode !== 200 && res.errorCode !== 0) {
console.log(res.msg, res.resultCode)
}
return Promise.resolve(response.data)
}, function (error) {
console.log(error)
if (error.message === 'Network Error') {
console.log(error.toString())
return
}
return Promise.reject(error)
})
export default async (url, data, method = 'get') => {
// 记录请求时间
const timestamps = new Date().getTime()
// 把请求方式转成小写
method = method.toLowerCase()
// 构造请求路径
let requestUrl = url
// 请求体
try {
let response = await request[method](requestUrl, method === 'post' ? data : { params: data })
response.request = {
url,
data,
method,
timestamps
}
return Promise.resolve(response)
} catch (error) {
return Promise.reject(error)
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论