标签: flask-cors

Python flask-cors ImportError:没有名为“flask-cors”的模块Raspberry pi

我正在关注此处文档中的flask-cors教程:https ://pypi.python.org/pypi/Flask-Cors

但是当我将它安装在我的树莓派上并运行我的 python 应用程序时,我收到了这个错误

Traceback (most recent call last): File "app.py", line 3, in <module> from flask_cors import CORS, cross_origin ImportError: No module named 'flask_cors'

这是我的python脚本:

from flask import Flask
from Main import main
from flask_cors import CORS, cross_origin    
app = Flask(__name__)
CORS(app)
main = main() 

@app.route('/turn' ,methods=['GET', 'OPTIONS'])
def index():
  return main.turn()

if __name__ == '__main__': 
  app.run(debug=True, host='0.0.0.0')
Run Code Online (Sandbox Code Playgroud)

python flask raspberry-pi flask-cors

11
推荐指数
2
解决办法
4万
查看次数

Flask-CORS不适用于POST,但适用于GET

我在本地运行Flask-Restful API并从不同的端口发送包含JSON的POST请求.我收到了错误

No 'Access-Control-Allow-Origin' header is present on the requested resource.
Run Code Online (Sandbox Code Playgroud)

但是,当我跑

curl --include -X OPTIONS http://localhost:5000/api/comments/3
        --header Access-Control-Request-Method:POST
        --header Access-Control-Request-Headers:Content-Type
        --header Origin:http://localhost:8080
Run Code Online (Sandbox Code Playgroud)

我明白了

HTTP/1.0 200 OK
Content-Type: text/html; charset=utf-8
Allow: HEAD, GET, POST, OPTIONS
Access-Control-Allow-Origin: http://localhost:8080
Access-Control-Allow-Methods: DELETE, GET, HEAD, OPTIONS, PATCH, POST, PUT
Vary: Origin
Access-Control-Allow-Headers: Content-Type
Content-Length: 0
Run Code Online (Sandbox Code Playgroud)

其中"Access-Control-Allow-Origin"显示为"*".GET工作正常,只是POST给出了这个错误.怎么可能出错?如果相关,对于我正在使用的前端做出反应并通过axios请求.

python cors flask flask-cors axios

9
推荐指数
3
解决办法
5493
查看次数

zappa自定义授权器为cors的烧瓶

我正在使用flask-cors来获取aws python aws lambda API.我用zappa部署它,它按预期工作.然而,cors并不适用于受https://github.com/awslabs/aws-apigateway-lambda-authorizer-blueprints/blob/master/blueprints/python/api-gateway-authorizer-python.py启发的自定义授权程序

我使用try/except更改了授权者代码,并在异常时为OPTION方法生成策略,仍然Option方法返回401.

如果它让事情变得简单,我不介意解决方法.

谢谢

我尝试了一种建议的解决方案:即在API网关中为401响应设置标头,遗憾的是浏览器预检需要成功的状态代码.

python amazon-web-services zappa aws-lambda flask-cors

8
推荐指数
1
解决办法
1211
查看次数

在 Flask 500 错误中获取 CORS 标头

我有一个像这样设置的 Flask 应用程序

from flask import Flask
from flask.ext.cors import CORS

app = Flask( . . . )
app.debug = True

CORS(app, allow_headers='Content-Type')
Run Code Online (Sandbox Code Playgroud)

对于正确完成的路由,CORS 正常工作。但是,如果引发异常,则会生成没有 CORS 标头的调试输出。这意味着我无法在 chrome 中看到调试输出。我可以解决这个问题吗?

flask-cors

8
推荐指数
1
解决办法
1132
查看次数

启用 CORS Google Cloud Function (Python)

可以flask_cors在 Google Cloud Functions 中使用吗?

app = Flask(__name__)
cors = CORS(app)
Run Code Online (Sandbox Code Playgroud)

flask_cors包在本地可以工作,但部署到 Cloud Functions 上时就不行了。

我尝试了很多不同的方法,正如 GCP 建议的那样https://cloud.google.com/functions/docs/writing/http 但我仍然收到 CORS 错误:

对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。

python cors google-cloud-platform flask-cors google-cloud-functions

8
推荐指数
1
解决办法
6397
查看次数

为什么 Flask-Cors 在生产中没有检测到我的跨域域?

我的网站有一个独立的前端和后端服务器,所以我的后端服务器需要开放CORS权限,以便前端可以从中请求数据。

我在开发中成功地使用了Flask-Cors ,但是当我部署到生产时它不起作用。 (请注意,我已经查看了关于 SO 的其他flask-cors 问题,但没有一个适合我的情况)

这是正在开发中的相关代码:

# 3rd party imports
import flask
from flask import Flask, request, redirect, send_from_directory, jsonify
from flask_cors import CORS

# Create the app
app = Flask(__name__)
CORS(app, origins=[
  'http://localhost:5001',
])

# Define the routes
@app.route('/')
def index():
  # no CORS code was necessary here
  app.logger.info(f'request is: {flask.request}')
Run Code Online (Sandbox Code Playgroud)

我试过的:

  • 添加我的服务器的IP地址'http://162.243.168.182:5001'的列表CORS是不是足以解决问题,但我的理解应该有。
  • 看来,使用'*',允许所有起源并没有擦出火花。(非常可疑!)

请注意,我使用的是 Docker 容器,因此开发和生产之间的环境几乎相同。但不同的是,我在不同的服务器上,我修改了前端以将请求发送到新的 IP 地址(导致著名的“Access-Control-Allow-Origin” header missingCORS 错误)。 …

webserver cors flask docker flask-cors

7
推荐指数
1
解决办法
2014
查看次数

如何让CORS在谷歌云中运行?

我有一个 React 微服务(通过 nginx)部署到谷歌云运行上,其后端环境变量设置为另一个运行为后端服务的 Gunicorn 的谷歌云运行实例。

我的 Flask 应用程序是按照我能找到的有关允许 CORS 的所有内容进行设置的:

app = Flask(__name__)
app.config.from_object(config)
CORS(app, resources={r"/*": {"origins": "*"}})
app.config['CORS_HEADERS'] = 'Content-Type'
return app

# Different file, a blueprint's urls:

@blueprint.route('/resources')
@cross_origin()
def get_resources():
...

Run Code Online (Sandbox Code Playgroud)

但我仍然感到害怕Access to XMLHttpRequest at 'https://backend/resources/' from origin 'https://frontend' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

有谁对此有任何见解/知道在解决这个问题时还可以从哪里寻找?我想用我的微服务设置 GKE,但最初选择了阻力最小的路径,在云中建立 POC。我让后端与我的 Cloud SQL 实例对话,我已经很接近了!

谢谢

cors flask google-cloud-platform flask-cors google-cloud-run

7
推荐指数
2
解决办法
1万
查看次数

Python Flask CORS - API 始终允许任何来源

我已经查看了许多 SO 答案,但似乎找不到这个问题。我有一种感觉,我只是错过了一些明显的东西。

我有一个基本的 Flask api,并且我已经实现了 flask_cors 扩展和自定义 Flask 装饰器[@crossdomain from Armin Ronacher]1 ( http://flask.pocoo.org/snippets/56/ ) 两者都显示相同的问题。

这是我的示例应用程序:

application = Flask(__name__,
            static_url_path='',
            static_folder='static')
CORS(application)
application.config['CORS_HEADERS'] = 'Content-Type'

@application.route('/api/v1.0/example')
@cross_origin(origins=['http://example.com'])
# @crossdomain(origin='http://example.com')
def api_example():
  print(request.headers)
  response = jsonify({'key': 'value'})
  print(response.headers)
  return response
Run Code Online (Sandbox Code Playgroud)

(插入编辑 3):

当我在浏览器中(从 127.0.0.1 开始)从 JS 向该端点发出 GET 请求时,它总是返回 200,我希望看到:

Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1:5000' is therefore not allowed access. The …
Run Code Online (Sandbox Code Playgroud)

python cors flask flask-cors

4
推荐指数
1
解决办法
1万
查看次数

CORS 请求在 python flask-socketio 中没有成功

我需要调试帮助 - 同源策略不允许读取https://some-domain.com 上的远程资源。(原因:CORS 请求没有成功)在 python flask-socketio 错误中。

我正在使用 python flask-socketio 开发一个聊天应用程序。以前我在本地创建了该应用程序,它按预期工作正常,当我将下面的代码移动到服务器时,它显示了上述错误。客户端代码在 https 服务器上运行,服务器代码也在 https 服务器上运行,我不知道为什么会显示该错误。

我在下面附上了我的代码,请给我一个更好的解决方案。

服务器.py

    import json
    import os
    from flask import Flask, render_template, request,session
    from flask_socketio import SocketIO, send, emit
    from datetime import timedelta,datetime
    from flask_cors import CORS

    app = Flask(__name__)
    app.config['SECRET_KEY'] = 'secretkey'
    app.config['DEBUG'] = True
    app.config['CORS_HEADERS'] = 'Content-Type'
    cors = CORS(app, resources={r"/*": {"origins": "*"}})
    socketio = SocketIO(app)

    users = {}

    @app.before_request
    def make_session_permanent():
        session.permanent = True
        app.permanent_session_lifetime = timedelta(minutes=1)

    @app.route('/')
    #@cross_origin(origin='*',headers=['Content- Type','Authorization']) …
Run Code Online (Sandbox Code Playgroud)

python cors flask flask-socketio flask-cors

4
推荐指数
1
解决办法
4985
查看次数

Flask-cors 问题 - 被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:它没有 HTTP 正常状态

我是烧瓶和角度的新手,请耐心等待。

\n\n

我一直被 CORS 的问题困扰。我应用了不同的代码修复只是为了使其工作。现在我得到的错误是

\n\n
Access to XMLHttpRequest at \'http://localhost:5000/dashboard/clientscount/2019/2020\' from origin \'http://localhost:8080\' has been blocked by CORS policy: Response to preflight request doesn\'t pass access control check: It does not have HTTP ok status.\n
Run Code Online (Sandbox Code Playgroud)\n\n

我认为我的问题的答案来自这篇文章的已回答问题:已被 CORS 策略阻止:对预检请求的响应不\xe2\x80\x99t 通过访问控制检查,特别是此代码

\n\n
if r.Method == "OPTIONS" {\n    w.WriteHeader(http.StatusOK)\n    return\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

但这是用go语言写的。我正在烧瓶中工作。我的问题是如何在烧瓶中制作这个?同样在参考答案中,它说响应最初的请求,但我不确定如何继续该请求。

\n\n

如果您能为我指出正确的方向或文档,我将非常感激。

\n

flask flask-cors angular

4
推荐指数
1
解决办法
2万
查看次数

当我设置了 Access-Control-Allow-Origin 时,为什么会出现 CORS 错误?

问题

Access-Control-Allow-Origin响应头的请求匹配Origin头,但我仍然得到错误 Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://myappname.herokuapp.com/api/v1/products. (Reason: CORS request did not succeed).[Learn More]

标题

响应头

HTTP/1.1 308 PERMANENT REDIRECT
Connection: keep-alive
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: authorization, content-type
Access-Control-Allow-Methods: DELETE, GET, HEAD, OPTIONS, PATCH, POST, PUT
Access-Control-Allow-Origin: http://localhost
Content-Length: 311
Content-Type: text/html; charset=utf-8
Date: Thu, 04 Apr 2019 10:03:39 GMT
Location: http://mpappname.herokuapp.com/api/v1/products/
Server: waitress
Via: 1.1 vegur
Run Code Online (Sandbox Code Playgroud)

请求头

Host: mpappname.herokuapp.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:66.0) …
Run Code Online (Sandbox Code Playgroud)

cors flask flask-cors

2
推荐指数
1
解决办法
4359
查看次数