如何从服务器发送和接收数据:python / flask / ajax / json GET POST请求

时间:2016-12-24 03:12:46

标签: javascript python json ajax flask

这可能是一件简单的事情,但由于某些原因我无法弄清楚。在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);});

怎么办?请帮忙!

1 个答案:

答案 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