Ajax Chrome 65-无法从本地文件向Flask发出POST请求
我正在运行以下代码:Ajax Chrome 65-无法从本地文件向Flask发出POST请求,ajax,google-chrome,post,flask,cors,Ajax,Google Chrome,Post,Flask,Cors,我正在运行以下代码: from flask import Flask, jsonify from flask_cors import CORS app = Flask(__name__) CORS(app) @app.route('/test', methods=['POST']) def test(): return jsonify({'result': 'hello'}), 201 if __name__ == '__main__': app.run(debug=Tru
from flask import Flask, jsonify
from flask_cors import CORS
app = Flask(__name__)
CORS(app)
@app.route('/test', methods=['POST'])
def test():
return jsonify({'result': 'hello'}), 201
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0')
尝试打开以下页面时,我会收到错误消息:
“Access Control Allow Origin”标头的值“null”为
不等于提供的原点。因此,原点“null”不可用
允许访问
函数func(){
$.ajax({
url:“http://0.0.0.0:5000/test",
方法:“张贴”,
contentType:“应用程序/json”
});
}
window.onload=func
Chrome64不会出现这种情况。有人知道这是为什么吗?我猜您正在浏览
文件上的测试页面://
域(而不是通过HTTP)文件://资源对CORS的支持有限
如果在web服务器上浏览测试页面,则CORS将按预期工作。例如,您可以运行如下命令来启动一个简单的PHP web服务器:
php-S localhost:5001./test.html
然后通过URL
http://localhost:5001/
一种不需要在web服务器中装载本地文件的替代解决方案,可以通过CORS允许跨源。(如果您需要多个本地文件,例如链接javascript/css文件,则此选项非常有用)
只需更换线路:
CORS(应用程序)
借
CORS(应用程序,发送\通配符=True)
有关更多详细信息,请参见谢谢你,马特,这真的很有帮助。我想知道Chrome 65中有什么改变,不允许这种活动。
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.3.1.min.js"></script>
</head>
<body>
<script>
function func() {
$.ajax({
url: "http://0.0.0.0:5000/test",
method: "POST",
contentType: "application/json"
});
}
window.onload = func
</script>
</body>
</html>