javascript - Python API,由 JavaScript 使用,发送 JSON 数据

标签 javascript python json api

我有使用 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/

相关文章:

javascript获取div的值,如果它有一个类

javascript - 如何在 snap svg 中自动换行文本?

javascript - 为什么只记录我的部分 json 数据?

Django JSONField转储/加载

python - Python 3 和 Python 2 之间的通信

ios - 如何使用Swift 4解决Tableview数据数组 "Out of range values"?

php - 如何使用 HTML 表单将 JavaScript 值传递到另一个 PHP 页面?

javascript - 循环通过 $id 从 Firebase 后端生成自定义的唯一页面数据

python - Dash CallBacks 一种获取函数的输出 Id 列表或静态变量的方法

python - 在 % 内转义字符串