如果提交FormData数据 点击提交后header中没有Form Data或Request Payload 但是把axios.post('/login', formData, config)换成axios.post('/login', {a: 'a'}, config)就会有显示 搞了半天也搞不懂这是为什么?百度上的方法也试了 有的说是跨域的问题 我随便测试的任何一个地址都不行 Content-Type也加了还是不行 大家能帮我看看是哪里的问题吗?我搜站内也搜到一个同样的问题 这个问题好像也没有解决 https://segmentfault.com/q/10...sub () {
let formData = new FormData()
formData.append('name', 'aaa')
let config = {
headers: { 'Content-Type': 'multipart/form-data'
}
}
axios.post('/login', formData, config)
}发送文本就会有显示 发送FormData什么都不显示
2 回答
翻翻过去那场雪
TA贡献2065条经验 获得超14个赞
这样拦截请求做封装,主要是将 FormData 的 POST 请求和普通的 POST 请求分开处理了。
/** * 实例请求拦截函数 * @param {Object} config 请求配置信息 * @return {Object | Promise} 请求配置信息或错误信息 */instance.interceptors.request.use( config => { // Set token here config.headers['TICKET'] = getToken() // transform post data to queryString if (config.method === 'post' && config.headers['Content-Type'] !== 'multipart/form-data') { config.data = Qs.stringify(config.data) } // 文件上传 // 只需要在Post请求时候将opts的headers属性设置为 // { 'Content-Type': 'multipart/form-data' } // 即可。例: // const uploadImage = params => request('post', '/upload', params, { // headers: { // 'Content-Type': 'multipart/form-data' // } // }) // // 下面以使用FormData的file字段名来保存文件举例。 // 若为单图上传,则将File类型保存到字段名`file`中即可。 // 若为多图上传,则需将File类型的数据数组保存在`file[]`形式的字段内。 if (config.headers['Content-Type'] === 'multipart/form-data') { const { data } = config let fd = new FormData() for (const key in data) { if (data.hasOwnProperty(key)) { if (key.endsWith('[]')) { data[key].forEach(item => { fd.append(key, item) }) } else { fd.append(key, data[key]) } } } config.data = fd } return config }, err => { return Promise.reject(err) } )
- 2 回答
- 0 关注
- 1551 浏览
添加回答
举报
0/150
提交
取消