Access-Control-Allow-Origin无法正常工作

时间:2019-02-20 19:16:52

标签: angularjs python-3.x

我已经尝试了几个小时,以允许angularjs客户端(localhost:5000)使用flask(localhost:5001)访问python服务器的资源,但我一直收到相同的错误消息“跨域请求被阻止:同源策略不允许读取http://localhost:5001/api上的远程资源(原因:在CORS标头“ Access-Control-Allow-Credentials”中应为“ true”。)

到目前为止,我已经尝试过:

允许通过flask_cors使用CORS

from flask_cors allow CORS
api = Blueprint('api', __name__)
CORS(api, resources={"/api/*: {"origins": "*"}})

同时使用带角度的http-proxy-middleware

server.middleware = proxy('/api', {target: 'http://localhost:5001', changeOrigin:true});

server.middleware = proxy('/api', {target: 'http://localhost:5001', changeOrigin:true, onProxyRes: function(proxyRes, req, res){proxyRes.headers['Access-Control-Allow-Origin']='*';}});

响应标头中的Access-Control-Allow-Origin字段为“ http://localhost:5000”,而不是“ http://localhost:5001”,这是我所需要的(如果我理解正确的话)。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我遇到了相同的问题,并使用CORS装饰器@cross_origin()和参数supports_credentials=True进行了修复(请注意,您不能同时使用origin='*'support_credentials=True时间)

可以找到更多信息here