javascript - HTTP POST -> 400 : Bad Request

标签 javascript json api

我正在学习如何制作 API,目前该 API 运行良好(使用 Postman)。我现在正在尝试创建一个使用它的应用程序,我设法发出 GET 和 DELETE 请求,但我陷入了 POST 和 PUT 请求。

这是我为 POST 所做的尝试:

url = "http://localhost:8000/musiques"

let titre = document.getElementById('formTitre').value;
let auteur = document.getElementById('formAuteur').value;
let genre = document.getElementById('formGenre').value;
let annee = document.getElementById('formAnnee').value;
let image = document.getElementById('formImage').value;

let jsonArr = [];

jsonArr.push({
    auteur: auteur,
    titre: titre,
    genre: genre,
    annee: annee,
    image: image
});
console.log(jsonArr);

let req = new XMLHttpRequest();
req.open("POST", url);
req.send(jsonArr);

当我尝试时,我收到错误 400 错误请求。

<小时/>

编辑:
好的,现在我有这个:

let titre = document.getElementById('formTitre').value;
let auteur = document.getElementById('formAuteur').value;
let genre = document.getElementById('formGenre').value;
let annee = document.getElementById('formAnnee').value;
let image = document.getElementById('formImage').value;

let jsonArr = [];

console.log(titre);

jsonArr.push({
    auteur: auteur,
    titre: titre,
    genre: genre,
    annee: annee,
    image: image
});

console.log(JSON.stringify(jsonArr));

fetch(url, {
    method: 'POST',
    body: JSON.stringify(jsonArr),
    headers:{
        'Content-Type': 'application/json'
    }
}).then(res => res.json())
.then(response => console.log('Success:', JSON.stringify(response)))
.catch(error => console.error('Error:', error));

这给了我一个错误:

Success: {"error":{"code":500,"message":"Internal Server Error","exception":
[{"message":"An exception occurred while executing 'INSERT INTO api_musique
(auteur, genre, image, annee, titre) VALUES (?, ?, ?, ?, ?)' with params 
[null, null, null, null, null]:\n\nSQLSTATE[23000]: Integrity constraint 
violation: 1048 Le champ 'auteur' can't be empty

现在好多了。非常感谢,我正在努力。

最佳答案

这里是更正

let titre = document.getElementById('formTitre').value;
let auteur = document.getElementById('formAuteur').value;
let genre = document.getElementById('formGenre').value;
let annee = document.getElementById('formAnnee').value;
let image = document.getElementById('formImage').value;

let jsonArr = {
    auteur: auteur,
    genre: genre,
    image: image,
    annee: parseInt(annee),
    titre: titre
};

console.log(titre);


console.log(JSON.stringify(jsonArr));

fetch(url, {
    method: 'POST',
    body: JSON.stringify(jsonArr),
    headers:{
        'Content-Type': 'application/json'
    }
}).then(res => res.json())
.then(response => console.log('Success:', JSON.stringify(response)))
.catch(error => console.error('Error:', error));

非常感谢大家

关于javascript - HTTP POST -> 400 : Bad Request,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53998357/

相关文章:

java - REST API 授权类型

javascript - 将 IEnumerable 列表传递给 javascript

javascript - 通过单击 <a> block 设置隐藏值

JSON 解码错误 - typeMissmatch Swift 4

api - 如何从 Azure API 管理获取 API 使用数据?

python-3.x - Telethon 在 python 中的第一步

javascript - 将一个 div 类放在 three.js 场景之上以创建一个 gui

javascript - 如何使此代码与其余代码一起使用?

javascript - 需要循环遍历特定 json 数据格式的帮助

javascript - Firebase 根据子值删除节点