使用XMLHttpRequest发送数据

时间:2018-09-30 17:17:12

标签: javascript python ajax xmlhttprequest

我有一个网站,当按下按钮时,该网站应该将名称发送给python脚本(在第三方网站上)。然后,此python脚本会将名称改为大写,并将其返回网站。

现在,当按下按钮时,可以正确发送XMLHttpRequest,但是我不确定如何使用XMLHttpRequest正确发送数据,以及如何在python脚本中访问此数据。

XMLHttpRequest:

document.getElementById("myButton").addEventListener("click", 
    function() {
        var myRequest = new XMLHttpRequest();

        myRequest.open('GET', 'https://example.com/');

        myRequest.onreadystatechange = function () { 
            if (myRequest.readyState === 4) {
                alert(myRequest.responseText);
            }
        }
        myRequest.send("Bob"});
    }
);

Python脚本:

from flask import Flask, jsonify
from flask_cors import CORS
from requests import request

app = Flask(__name__)
CORS(app)

@app.route("/", methods=["GET"])
def hello_world():
    return jsonify(name = (name_sent_by_XMLHttpRequest).upper()) # Should return "BOB"

if __name__ == '__main__':
    app.run()

1 个答案:

答案 0 :(得分:1)

我对javascript的XMLHTTPRequest一无所知,但是在某个时候,您需要将name发送到python服务器,对吗?如何做到这一点取决于您,但是基于GET的选项:

获取带有参数的请求:https://example.com/?name=your_name_goes_here

在烧瓶应用中,在路由"/"上侦听的函数现在将可以访问该arg,类似

name = request.args.get('name', '')

然后您可以将其大写(),并以某种格式(可能是XML)返回它。

return Response(my_xml, mimetype='text/xml')

根据您的评论进行更新:通常在flask函数中,您将使用flask request对象获取URL参数。在您的示例中,您正在将requests模块导入为request,而不使用它,而是破坏了flask.request命名空间。将您的导入更改为这样,它应该可以正常工作:

from flask import Flask, jsonify, request
from flask_cors import CORS
import requests