我在通过FormData
从Vue.js向我的Python flask后端上传图像时遇到问题。我有一个处理Vue.js(Nuxt)的node.js服务器,因此可以执行SSR。最小堆栈设置:
Vue.js (Nuxt) frontend --> node.js proxy server ---> Python flask backend
HandleFile.vue
const formData = new FormData()
formData.append('image', file)
formData.append('data', JSON.stringify(upcomingReq))
const resp = await this.$axios.post('/api/receive-file', formData, {
headers: {
'Content-Type': 'multipart/form-data'
}
})
server.js
(仅是服务于nuxt应用程序的node.js服务器的代理功能的片段)
app.use('/api', proxy({
target: API_URI,
changeOrigin: true,
// logLevel: 'debug',
onProxyReq(proxyReq, req, res) {
if (req.session.authToken) {
proxyReq.setHeader('Authorization', 'Bearer ' + req.session.authToken)
}
},
}))
app.py
(接收文件的控制器)
@v1.route('/api/receive-file', methods=['GET', 'POST'])
@auth_required
def receive_file():
print('in here')
return jsonify({'hi': 'ok'})
这是我得到的错误:
另外,Flask正在返回200
,好像一切正常。在检查了烧瓶request
之后,文件就在其中了。
我不确定为什么响应似乎失败,或者如错误所示,管道损坏了。
答案 0 :(得分:0)
对于任何找到此问题的人,都可以通过ngrok运行localhost来解决。
似乎缺少标头,我相信当仅通过本地主机提供服务时,重要的是Connection: keep-alive
。