私はJqueryの初心者です。下のスクリプトはHTMLページに出力を生成しません。PythonスクリプトからJQueryにJSONを送信
問題:
私のスクリプトの中で、私は、JSONオブジェクトを返すフラスコURLにGETリクエストを送信するためにrequests
ライブラリを使用しています。このオブジェクトはJQueryに送信され、JSONオブジェクトがWebページに出力されます。もし私が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>
'response.text'を使い、JQueryで' dataType: 'json''を使うのですか?また、変換は必要ありません。Jquery内のキーから値を抽出する必要があります – omrakhur
@omrakhur:Unicodeテキストの場合は 'response.text'を表示するか、' sys.stdoutに 'response.content'を直接書きます。バイトからのデコードを回避し、再びエンコードすることを意味する。 –
私は 'response.content'と' response.text'の間でちょっと混乱しています。前者を使用すると、JQueryに返されたときにJSONと見なされますか? – omrakhur