Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何调试net::err_失败/415 POST请求中不支持的媒体类型错误?_Javascript_Ajax_Http - Fatal编程技术网

Javascript 如何调试net::err_失败/415 POST请求中不支持的媒体类型错误?

Javascript 如何调试net::err_失败/415 POST请求中不支持的媒体类型错误?,javascript,ajax,http,Javascript,Ajax,Http,我们有一个API(由我们团队的后端开发人员制作),我正试图在Vue应用程序中使用它。之前,我已经通过成功地向API发出了一些GET请求,因此我认为框架本身不会有问题。我正在尝试以下方法: const data = JSON.stringify(someObject); axios.post(process.env.VUE_APP_DEV_API_ENDPOINT + `/examination/conclusion`, data) 它返回415个不支持的媒体类型响应。好的,请求头包含 Acce

我们有一个API(由我们团队的后端开发人员制作),我正试图在Vue应用程序中使用它。之前,我已经通过成功地向API发出了一些
GET
请求,因此我认为框架本身不会有问题。我正在尝试以下方法:

const data = JSON.stringify(someObject);
axios.post(process.env.VUE_APP_DEV_API_ENDPOINT + `/examination/conclusion`, data)
它返回415个不支持的媒体类型响应。好的,请求头包含

Accept: application/json, text/plain, */*
Content-Type: application/x-www-form-urlencoded
而swagger则为该
POST
API显示

有道理,我已尝试将请求更改为

axios.post(process.env.VUE_APP_DEV_API_ENDPOINT + `/examination/conclusion`, data, {
    headers: {
        'Content-Type': 'application/json-patch+json',
    },
})
但这让我在(Vivaldi)开发工具中使用了“(failed)”代替HTTP请求代码和“(failed)net::ERR_failed”。。好的,Chrome开发工具显示axios实际上发送了
选项
请求,而不是
发布
!为什么呢?(Vivaldi控制台说是
POST
请求失败了)。请求是跨域的(从本地主机到远程服务器),此请求(不同于不带标头设置发送的请求)也会在控制台中导致此错误:

CORS策略已阻止从源站“”访问“[my API path]/Examition/conclusion”处的XMLHttpRequest:对飞行前请求的响应未通过访问控制检查:它没有HTTP ok状态

如果这是一个CORS问题,为什么我得到415没有这些标题和CORS投诉?是吗如何解决此问题?为什么axios会发送
OPTIONS
请求而不是
POST
?或者它没有,这是Chrome开发工具的一个怪癖?这是如此不一致,不确定在哪里继续

我找到了一个答案,但那个没有得到答案

PSs

  • 好的,在FireFox中,第二个请求也显示为发送一个
    OPTIONS
    请求,然后得到404响应,控制台显示错误。我问过我们的后端开发人员,他们认为整个应用程序都启用了CORS,所以这更可能是axios的问题

  • 两个可能相关的axios问题:

  • 嗯,看起来axios不需要做任何事情

    fetch(process.env.VUE_APP_DEV_API_ENDPOINT + `/examination/conclusion`, {
        method: 'POST',
        body: data
    })
    
    给出了相同的415响应

    fetch(process.env.VUE_APP_DEV_API_ENDPOINT + `/examination/conclusion`, {
        method: 'POST',
        headers: {
            'Accept': 'application/json',
            'Content-Type': 'application/json'
        },
        body: data
    })
    
    给出相同的
    (失败)net::ERR_failed
    结果

  • 看起来像是回答了大多数“为什么”的问题,但不是“如何修复”的问题

  • 看起来与“如何修复”方面更相关(我已经向我们的后端开发人员展示了它,我们将看看它是否有帮助)