【发布时间】:2019-05-13 11:55:44
【问题描述】:
从终端进行此调用有效:
curl -d "username=test&password=test" -X POST http://127.0.0.1:5000/login/
但在我的 Chrome 扩展程序中,Ajax 调用失败,状态为 0。我尝试了很多方法,但都没有运气。
function doLogin() {
var username = document.getElementById("username").value;
var password = document.getElementById("password").value;
var params = 'username=' + username + '&password=' + password;
sendPostRequest("http://127.0.0.1:5000/login/", params);
}
function sendPostRequest(url, params) {
var http = new XMLHttpRequest();
http.open('POST', url, true);
http.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
http.onreadystatechange = function () {
// This is never called
if (this.readyState == 4 && this.status == 200) {
alert(http.status);
}
};
http.send(params);
}
服务器端:
@app.route("/login/", methods=['POST'])
def login():
username = request.form["username"]
password = request.form["password"]
auth = authenticate(username, password)
return jsonify({'authentication': auth}), 200
我将不胜感激。
【问题讨论】:
-
您在控制台中遇到的错误是什么?
-
XMLHtttpRequest 返回状态 0
-
检查您的控制台,必须记录错误。
标签: javascript flask xmlhttprequest