我有使用 Python 制作的 REST API,我想通过 JavaScript 使用它。 API 需要从前端以 JSON 格式发送一些数据,所以我这样调用:
var xhttp = new XMLHttpRequest(),
dataToSend = '{"key":"value"}';
xhttp.onreadystatechange = function() {
// Some logic.....
};
xhttp.open("POST", "URL to the API", true);
xhttp.setRequestHeader("Content-type", "application/json");
xhttp.send(dataToSend);
我从服务器得到 500,原因是:
“TypeError:JSON 对象必须是 str,而不是‘dict’”
我试图将 MIME 类型更改为“text/plain”、“text/html”和其他几种,但它只是将响应更改为:
TypeError: JSON 对象必须是 str,而不是 'NoneType'
后端人员说 API 工作正常,他们使用以下 python 代码对其进行了测试
request_result = requests.post('API URL', json=request_data_jsn).json();
知道我该怎么做才能让它发挥作用吗?
最佳答案
您必须将 dataToSend 转换为字符串。示例:使用 JSON.stringify
var xhttp = new XMLHttpRequest(),
dataToSend = {"key":"value"}
xhttp.onreadystatechange = function(data) {
console.log(data);
};
dataToSend = JSON.stringify(dataToSend);
xhttp.open("POST", "URL to the API", true)
xhttp.setRequestHeader("Content-type", "application/json")
xhttp.send(dataToSend);
关于javascript - Python API,由 JavaScript 使用,发送 JSON 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53866070/