簡體   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