我正在将文本转换为音频。这个想法是发送带有POST请求的文本,并接收音频作为对同一POST请求的文件响应。后端在POST请求之后收到意外的GET请求。下面的Axios代码:
const response = await Axios({
method: 'POST',
url: url,
responseType: 'blob',
data: {
text: textContent
}
}).then(response => {
const blob = new Blob([response.data], {type: 'audio/mpeg'});
var blobUrl = URL.createObjectURL(blob);
let a = new Audio(url)
a.play()
})
当我将音频文件返回到后端的GET请求时,一切正常。
(1)为什么我的POST请求后收到GET请求?这与Chrome的CORS有关吗?
(2)最好的预防方法是什么?我想通过单个原子操作来发送文本和接收音频,因为我不想实现数据库。
答案 0 :(得分:0)
创建音频文件时,我应该使用“ blobUrl”而不是“ blob”:
let a = new Audio(blobUrl)
此行导致意外的GET请求。我花了几天的时间才发现此错误,因为我完全专注于Chrome如何处理CORS以及Django如何处理中间件和CORS标头。