【问题标题】:Axios / Chrome: unexpected GET request after POST requestAxios / Chrome:POST请求后出现意外的GET请求
【发布时间】:2020-12-31 03:43:20
【问题描述】:

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

【问题讨论】:

  • 你的URL 是什么?它有一个斜杠吗?你的后端技术是什么?
  • 网址是127.0.0.1:8000/audio/data,我确保没有斜杠,后端是Django

标签: google-chrome post get axios


【解决方案1】:

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

let a = new Audio(blobUrl)

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

【讨论】:

    猜你喜欢
    • 2021-08-05
    • 2013-11-15
    • 2020-02-14
    • 2016-06-05
    • 2021-05-03
    • 2018-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多