我不确定如何在Flask的python应用程序中从Java代码中的Ajax请求中提取数据。我的Ajax请求不使用jQuery。
我尝试在Python代码中使用request.form.get()
和request.get_json()
,但是两者都产生一个None
值。
@app.route("/", methods=["GET", "POST"])
def index():
if not request.get_json() == None:
print(request.get_json())
name = request.get_json()
session["name"] = name.user
return render_template("index.html", channels=channels)
在我的Javascript代码中,我执行了一个简单的Ajax请求:
if(localStorage.getItem("user")) {
document.querySelector("#logout").addEventListener("click", () => {
localStorage.removeItem("user");
})
const request = new XMLHttpRequest();
request.open("POST", "/")
user = JSON.stringify(localStorage.getItem("user"))
request.send(user)
}
答案 0 :(得分:1)
数据应该进入class ViewController: UIViewController, UIPopoverPresentationControllerDelegate {
@IBOutlet weak var textField: UITextField!
@IBAction func onTapButton(_ sender: UIButton) {
let controller = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "PopoverVC") as! PopoverVC
controller.text = "Enter valid Mobile Number"
controller.modalPresentationStyle = .popover
controller.preferredContentSize = CGSize(width: 300 , height: 70)
let popover = controller.popoverPresentationController
popover?.delegate = self
popover?.permittedArrowDirections = .down
popover?.sourceView = self.textField
popover?.sourceRect = self.textField.bounds
self.present(controller, animated: true, completion: nil)
}
func adaptivePresentationStyle(for controller: UIPresentationController) -> UIModalPresentationStyle {
return .none
}
}
而不是request.get_data()
推荐request.get_json和 request.get_data了解更多信息
答案 1 :(得分:0)
如果我很清楚地理解,您不希望只发送('user':'value')
之类的整个字典。
在这种情况下,request.get_data()
可以正常工作:
from flask import Flask, request
app = Flask(__name__)
@app.route('/', methods=["GET","POST"])
def index():
data = open('index.html').read()
print request.get_data()
return data
if __name__ == '__main__':
app.run(host='0.0.0.0', port=8080)
index.html是带有按钮的简单页面,该按钮触发以下javascript:
var request = new XMLHttpRequest()
request.open("POST","/", true)
var send_data = "Hello World"
request.send(send_data)