这可能是一件简单的事情,但由于某些原因我无法弄清楚。在SAME网页上,我想将HTML中点击的单词发送到服务器,让服务器将其发回并提醒单词。
在烧瓶.py文件中,我有这个(它曾经看起来不同,更合理,但现在我正在做什么):
@app.route('/render/', methods=['GET'])
def render():
if request.method == "GET":
jsondata = request.get_json()
query_string = request.query_string
#data = json.loads(jsondata)
print(query_string)
if query_string != None:
print(query_string)
return render_template('read.html', yup=jsondata)
在JavaScript / HTML方面,客户端发送悬停字样(我知道服务器将其视为"GET /render/?%22whats%22 HTTP/1.1" 400 -
,但它并不完全检索或发送它回来了。
$("#readMain").delegate("span", "mouseenter", function() {
var toSend = $(this).text();
$.ajax({
url: window.location.href,
type: 'GET',
data: JSON.stringify(toSend),
contentType: 'application/json; charset=UTF-8',
});
$("#readMain").delegate("span", "click", function() {
var jsonStr = JSON.stringify('{{yup}}');
alert(jsonStr);});
怎么办?请帮忙!
答案 0 :(得分:1)
如果在客户端上使用GET,则必须在服务器上使用request.args 服务器上的request.get_json是在客户端上使用POST时的
对于GET方法,你必须使用类似的东西:
from flask import Flask, jsonify, request
app = Flask(__name__)
@app.route("/")
def hello():
all_args = request.args.lists()
return jsonify(all_args)
用于POST方法;类似的东西:
if request.mimetype == 'application/json':
res = request.get_json()
else:
res = request.form