我有一个网站,当按下按钮时,该网站应该将名称发送给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()
答案 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