我是 Jquery 的新手,下面的脚本不会在 HTML 页面上产生任何输出。
问题:
在我的脚本中,我使用 requests
库将 GET 请求发送到返回 JSON 对象的 Flask URL。然后需要将该对象发送到 JQuery,然后 JQuery 将在网页上输出 JSON 对象。如果我使用 response.text
发送数据,它工作正常,但如果我使用 response.json()
发送数据,它不会输出任何内容。不过,我需要将其作为 JSON 对象发送,以便我可以从中提取所有数据并将其放在 HTML 元素上。
getajaxtest.py:
import requests
import json
def send_log_ajax():
url = 'http://xx.com/returnjsonobj'
response = requests.get(url)
return response.json()
if __name__ == '__main__':
ajax_var = send_log_ajax()
print(ajax_var)
HTML 和 JQuery:
<html>
<head><script
src="https://code.jquery.com/jquery-3.2.1.min.js"></script></head>
<body>
<div style="border:1px solid black;background-color:lightgray">
<p id="transactioninfo">Loading Transaction Information...</p>
</div>
<script>
function getlogs() {
var url = 'www.myserver.com/getajaxtest.py';
$.ajax({
type: 'GET',
url: url,
dataType: 'json',
success: function(data) {
$("#transactioninfo").html(data)
},
error: function(e) {
console.log(e.message);
}
});
}
$(document).ready(function(){
setTimeout(function(){getlogs();}, 2000);
setInterval(function(){getlogs();}, 2000);
});
</script>
</body>
</head>
</html>
最佳答案
您正在打印 Python 数据结构,而不是 JSON。 requests.json()
解码 Flask 对 Python 字典、列表、字符串、数字、 bool 值以及可能的 None
的响应。那不是 JSON 数据。
只需将您的数据保留为 JSON 数据,然后打印您收到的文本。您的脚本只是一个代理,无需解释 JSON 数据。
如果您必须解码(也许您想对所包含的数据进行一些转换),请确保您再次编码回 JSON。。使用json.dumps()
执行此操作时会生成一个新的 JSON 编码字符串。
关于jquery - 将 JSON 从 python 脚本发送到 JQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45961528/