Python API,由JavaScript使用,发送JSON数据
我用Python制作了RESTAPI,我想通过JavaScript使用它。API需要从前端以JSON的形式发送一些数据,因此我进行如下调用:Python API,由JavaScript使用,发送JSON数据,javascript,python,json,api,Javascript,Python,Json,Api,我用Python制作了RESTAPI,我想通过JavaScript使用它。API需要从前端以JSON的形式发送一些数据,因此我进行如下调用: var xhttp = new XMLHttpRequest(), dataToSend = '{"key":"value"}'; xhttp.onreadystatechange = function() { // Some logic..... }; xhttp.open("POST", "URL to the API", true
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();
你知道我该怎么做才能让它工作吗?你必须把数据转换成字符串。示例:使用JSON.stringify
很抱歉,我没有把我的问题写对,我确实这样做了(我刚刚编辑了我的问题)我尝试了你的代码:dataToSend='{“key”:“value”}。这就是成功。如果我们不确切知道什么是
request\u data\u jsn
,那么“下面的python代码”就毫无意义了。另外,如果您发送json,“application/json”是正确的内容类型标题,但您在代码示例中发送的不是json(json是文本格式),而是javascript对象。关于python代码,很抱歉,这是我从他们那里得到的全部信息。关于这个对象,它实际上是一个有效的JSON字符串,它有所有的引号和符号。为了确保格式正确,我对它进行了验证。关于你发送的内容不正确的json的评论来自于我在你编辑问题之前看到的内容——编辑后的版本似乎是正确的。请注意,在python方面,您必须向“后端人员”询问一个适当的完整示例,否则无法提供帮助。
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);