2016-12-24 21 views
0

這可能是一件簡單的事情,但由於某種原因我無法弄清楚。在同一個網頁上,我想將點擊的單詞以HTML格式發送到服務器,並讓服務器將其發回並警告該單詞。如何發送和接收來自服務器的數據:python/flask/ajax/json GET POST請求

在燒瓶.py文件,我有這樣的(它曾經看起來不同,更合理的,但現在IDK的什麼,我甚至做):

@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

是否有什麼特別的原因,你爲什麼不發送json作爲'POST'請求​​? – danidee

回答

1

如果你用得到的是客戶端,您必須對服務器上的服務器 request.get_json使用request.args中。當您在客戶端

上使用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 
相關問題