繁体   English   中英

由JavaScript使用的Python API,用于发送JSON数据

[英]Python API, consumed by JavaScript, sending JSON data

我有用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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM