我是Jquery的新手,下面我的脚本在HTML页面上没有产生任何输出。
问题:
在我的脚本中,我使用requests
库向返回JSON对象的Flask URL发送GET请求。然后需要将此对象发送到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>
答案 0 :(得分:3)
您正在打印 Python 数据结构,而不是JSON。 requests.json()
解码了Flask对Python词典,列表,字符串,数字,布尔值以及None
的响应。这不是JSON数据。
只需将您的数据保存为JSON数据,然后打印您收到的文本。您的脚本只是代理,不需要解释JSON数据。
如果您必须解码(可能您想对所包含的数据应用某些转换),请确保再次编码回JSON 。当你这样做时,使用json.dumps()
生成一个新的JSON编码字符串。