我正在尝试向JSON blob api(这是存储我的JSON文件的简单api)发出POST请求。我出现405错误...
当GOT请求正常工作时,我不知道为什么我不能执行POST请求。
有人可以帮我吗? https://jsonblob.com/api
const api = "https://jsonblob.com/api/jsonBlob/c30c8afa-6557-11e9-acbe-
61e96b39ce8b"
//it doesn't work
fetch(api, {
method: 'POST',
body: JSON.stringify({
name: 'dean',
login: 'dean',
})
})
.then(response => {
if (response.ok) {
return response.json()
}
throw new Error('Request failed!')
})
.then(jsonResponse => {
console.log(jsonResponse)
})
.catch(error => {
console.log('Request failure: ', error);
});
// get request works fine
fetch(api).then((response) => {
if (response.ok) {
return response.json();
console.log(response)
}
throw new Error('Request failed! ');
})
.then((Jsondata) => {
console.log(Jsondata)
})
.catch(error => {
console.log(error.message)
});
答案 0 :(得分:0)
根据该API的文档,您需要在标头中指定json内容类型,这可以正常工作:
fetch("https://jsonblob.com/api/jsonBlob", {
method: 'POST',
headers: {
"Content-type": "application/json"
},
body: JSON.stringify({
name: 'dean',
login: 'dean',
})
})
.then(response => {
if (response.ok) {
return response.json()
}
throw new Error('POST Request failed!')
})
.then(jsonResponse => {
console.log(jsonResponse)
})
.catch(error => {
console.log('POST Request failure: ', error);
});
答案 1 :(得分:-1)
如果您阅读了该API的文档,则POST请求的请求URL中不会包含blobID-您还需要添加一个值为content-type
的{{1}}请求标头-否则,您会出现415错误
它在响应标头application/json
中返回一个Blob ID,因此,要获取该Blob ID标头供以后使用,您需要访问标头
x-jsonblob