Javascript 如何调试net::err_失败/415 POST请求中不支持的媒体类型错误?
我们有一个API(由我们团队的后端开发人员制作),我正试图在Vue应用程序中使用它。之前,我已经通过成功地向API发出了一些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
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
OPTIONS
请求,然后得到404响应,控制台显示错误。我问过我们的后端开发人员,他们认为整个应用程序都启用了CORS,所以这更可能是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
结果