Axios / Chrome:POST请求后出现意外的GET请求

时间:2020-09-13 03:56:07

标签: google-chrome post get axios

我正在将文本转换为音频。这个想法是发送带有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)最好的预防方法是什么?我想通过单个原子操作来发送文本和接收音频,因为我不想实现数据库。

1 个答案:

答案 0 :(得分:0)

创建音频文件时,我应该使用“ blobUrl”而不是“ blob”:

let a = new Audio(blobUrl)

此行导致意外的GET请求。我花了几天的时间才发现此错误,因为我完全专注于Chrome如何处理CORS以及Django如何处理中间件和CORS标头。