我需要通过JavaScript从Python服务器发送数据,使用XmlHttpRequest
。因为我正在使用localhost,所以需要使用CORS。我使用了Flask框架及其模块flask_cors
。
这是我的JavaScript代码:
var xmlhttp;
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
}
else {// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("POST", "http://localhost:5000/signin", true);
var params = "email=" + email + "&password=" + password;
xmlhttp.onreadystatechange = function() {//Call a function when the state changes.
if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {
alert(xmlhttp.responseText);
}
}
xmlhttp.send(params);
以及 Python 代码:
@app.route('/signin', methods=['POST'])
@cross_origin()
def sign_in():
email = cgi.escape(request.values["email"])
password = cgi.escape(request.values["password"])
但是当我执行它时,我收到了这个消息:
XMLHttpRequest无法加载localhost:5000/signin。请求的资源上没有“Access-Control-Allow-Origin”标头。因此,不允许访问来源为“null”的内容。
我该如何解决它?我知道我需要使用一些“Access-Control-Allow-Origin”标头,但我不知道如何在这段代码中实现它。顺便说一下,我需要使用纯JavaScript。
flask.ext.cors
已经被弃用,请使用flask_cors
替代! - Sterling Archer