Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ajax Chrome 65-无法从本地文件向Flask发出POST请求_Ajax_Google Chrome_Post_Flask_Cors - Fatal编程技术网

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>