问题标签 [flask-cors]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
90 浏览

reactjs - 使用 axios 指定标头的正确方法是什么?

在测试我的应用程序时,我正在与跨域标头搏斗:

反应面:

烧瓶后端__init__.py

try-catch以上在语句 的 catch 块中给了我一个异常:TypeError: name.toUpperCase is not a function

使用 Flask 的默认值,这意味着将端点暴露给任何域:

给我Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://localhost:5000/blog/posts. (Reason: CORS header 'Access-Control-Allow-Origin' missing)

我还尝试使用 Flask-CORS 的装饰器:

任何帮助深表感谢。

0 投票
1 回答
178 浏览

python - 使用 FlaskWTF 将未经授权的 ajax POST 发送到后端

介绍

你好。在这个应用程序中,我正在使用 flask_login、fetch() 和 flask_cors 来预测正在预测的服装。一切都很好,直到我尝试使用注册用户帐户登录。


问题

所以目前,我已经创建了一个用户帐户,他可以在该帐户中做任何他想要的预测。所以在这里,我有一段代码,当用户点击带有 id 的预测按钮时#startbutton,它会向我的烧瓶后端发送一个 POST,预测并返回预测结果。

在我的后端,我创建了一个 API 路由来处理来自我的 javascript 的数据,并将记录添加到我的数据库中。在这里,我用来@login_required验证登录用户并将他的数据发布到数据库。我还添加了@cross_origin这样我可以从我的 ajax 调用中获取数据。

在我_init_.py声明我的应用程序和 CORS 的地方,我添加了supports_credentials=True以便 CORS 支持我的应用程序的凭据。

但是,当我尝试调试并尝试在 localhost 中运行我的应用程序时,我使用现有用户帐户登录,并尝试进行预测。但我总是会收到一条Error 401(Unauthorized)错误消息,当我进入谷歌浏览器控制台查看错误时,我看到它将我识别为匿名用户。


研究

我试图找出是否有人遇到同样的问题,并且我设法找到了一篇与我目前的情况相似的 SO 帖子。链接在这里。我试图理解它,但无法看到(或理解)他的最终解决方案。


编辑

好的,所以我尝试在 Mozilla 中重新制定我当前的 ajax 代码fetch(),据说它支持 cookie(我猜?),但最终仍然收到未经授权的消息。

如果有人可以帮助我,真的会非常感激!:( 谢谢你! :)

0 投票
1 回答
91 浏览

reactjs - 为什么 React 无法在生产环境中访问 Flask 端点?

我在生产的后端有一个带有 Flask 的 React 应用程序,我发现 React 没有到达我的端点。

我知道在使用客户端路由时,开发人员需要使用类似于以下的包罗万象的功能:

我正在使用 Flask-CORS 来处理跨源请求:

在 config.py 中:

我的蓝图:

在前端,我正在定义这样的标题:

而且我没有收到任何错误。服务器的日志是干净的,控制台只显示Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://example.com:5000/auth/login. (Reason: CORS request did not succeed). “原因:CORS 请求未成功”表示服务器没有返回任何内容。该应用程序渲染良好,但 React (axios) 无法到达我的端点。有什么我不知道的陷阱吗?发送请求时,我什至没有在网络选项卡中获得状态代码。

谢谢你。

网络选项卡的屏幕截图:

在此处输入图像描述

0 投票
1 回答
200 浏览

cors - Cloud Run 是否会从我的后端移除 CORS 标头?

我使用QuartQuart-CORSSQLAlchemy在 Python 中开发了一个简单的后端。当我使用 Postman 在 localhost 上尝试不同的端点时,CORS 标头会正确返回。一旦我在 Google Cloud Run 上部署它,Google 似乎会删除后端返回的每个响应中的所有 CORS 标头,因此我的前端会拒绝响应。

有没有人遇到过这个问题?关于如何解决它的任何想法?如果需要我这边的任何其他信息,请告诉我。

谢谢,

0 投票
1 回答
2245 浏览

nginx - NGINX CORS 策略在 Access-Control-Allow-Origin 标头不存在时失败,但在标头存在时设置多次

正是标题所说的,但为了上下文:

确实可以访问上游资源,并且我允许那里的所有来源。

当我的 NGINX conf 不包含add_header 'Access-Control-Allow-Origin' '*';我的浏览器告诉我的指令时:

从源“http://localhost:8080”访问“http://localhost/{{ upstream_path_redacted }}”的 XMLHttpRequest 已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:没有“访问” -Control-Allow-Origin' 标头存在于请求的资源上。

当我确实包含上述​​指令时,我的浏览器会告诉我

从源“http://localhost:8080”访问“http://localhost/{{ upstream_path_redacted }}”处的 XMLHttpRequest 已被 CORS 策略阻止:“Access-Control-Allow-Origin”标头包含多个值“ http://localhost:8080, *',但只允许一个。

第二个问题是有道理的。正如我所说,我允许上游服务器上的所有来源。因此,我不明白为什么删除指令会导致第一个问题。

我的nginx.conf

更让我困惑的是:在查看 和 日志my-upstream-servernginx日志后,请求已成功发送到上游服务器???

我所有的挖掘都让我找到了解决上述任何一个问题的解决方案,但不是当这两个问题都发生时该怎么办。我难住了。

如有必要,进一步的上下文:我docker-compose用来部署这些服务(包括前端,它是一个 Vue SPA)。

my-upstream-service是一个Flask使用 Flask-Cors 的网络服务器。

这是docker-compose.yml

0 投票
1 回答
357 浏览

reactjs - 如何从反应中允许python烧瓶socketio中的cors-origin-policy

这是我的 server.py 文件。我已经使用 socketio 从反应应用程序中调用。

但是当我从反应应用程序调用这个 socketio 时,我收到以下错误。

我的反应代码如下:

如何解决 corse 原产地政策错误?

0 投票
2 回答
8472 浏览

angular - Angular cors 问题:对预检请求的响应未通过访问控制检查:它没有 HTTP ok 状态

我有一个 Angular 8 应用程序,它向托管在 IIS 服务器上的 Flask REST API 发出 POST 请求(使用 Windows Authntication)。问题是每次我从我的角度代码发出 POST 请求时都会收到 CORS 错误:

Response to preflight request doesn't pass access control check: It does not have HTTP ok status.

当我直接从浏览器直接调用它们时,api 的工作正常问题是当我从我的 angular 项目中调用它们时。

我使用了 flask-CORS 库:

我在我的 IIS 服务器中设置了这些 HTTP 响应标头:

当我检查网络选项卡时,我得到 CORS 错误而不是状态 401,所以我认为该错误不是身份验证问题。

我经历了多个stackoverflow问题,但所有问题都处理ASP.net,少数处理flask,他们都提到在IIS服务器中设置标题,但我的问题仍未解决。

请指导我这...

编辑

这是我的响应标头:

0 投票
1 回答
23 浏览

python-3.x - 为什么使用最宽松的设置不允许请求通过?

我正在使用 Flask 和 React 开发一个 Web 应用程序,尽管使用 Flask-CORS 并且所有默认值都未更改(允许所有标头和来源)从 React 发出的请求被拒绝Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://localhost:5000/auth/check_passport. (Reason: CORS request did not succeed).

烧瓶:

在终端中,我可以看到它可以进入 Flask:127.0.0.1 - - [20/Apr/2021 10:36:59] "POST /auth/check_passport HTTP/1.1" 200

根据将 CORS 保留为默认值的文档,任何客户端都可以到达端点。

非常感谢任何反馈。

编辑:

验证码:

前端:

0 投票
1 回答
1376 浏览

python - Python Flask CORS - 请求的资源上不存在“Access-Control-Allow-Origin”标头

我在 Shopify 产品页面上编写了一个简单的 Ajax 脚本。每当单击上传按钮时,将触发此脚本并向 API 服务器发送一条 json 消息

在 API 服务器中,我有以下用 Python 编写的代码:

谁能告诉我为什么每当触发 Ajax 脚本时我会在浏览器控制台中出现以下错误?

  1. 从源“https://www.abcabc.com”访问“https://e20e2287e2cb.ngrok.io/return_json”的 XMLHttpRequest 已被 CORS 策略阻止:不存在“Access-Control-Allow-Origin”标头在请求的资源上。
  2. POST https://e20e2287e2cb.ngrok.io/return_json net::ERR_FAILED

同时,在 API 服务器端,调试日志对我来说看起来很好,如下所示:

调试: flask_cors.extension:对“/return_json”的请求与 CORS 资源“/”匹配。使用选项:{'origins': ['. '], '方法': 'DELETE, GET, HEAD, OPTIONS, PATCH, POST, PUT', 'allow_headers': ['。'],'expose_headers':无,'supports_credentials':假,'max_age':无,'send_wildcard':假,'automatic_options':真,'vary_header':真,'resources':'/ ','intercept_exceptions' :真,'always_send':真}

调试: flask_cors.core:CORS 请求收到'Origin' https://www.abcabc.com

DEBUG: flask_cors.core:请求的 Origin 标头匹配。发送 CORS 标头。

调试: flask_cors.core:设置CORS标头:MultiDict([('Access-Control-Allow-Origin','https://www.abcabc.com'),('Vary','Origin')])信息: werkzeug:127.0.0.1 - - [23/Apr/2021 11:04:44] “POST /return_json HTTP/1.1”200 -

0 投票
0 回答
640 浏览

python - 我在烧瓶中得到 [OPTIONS] 方法而不是 [POST]

我正在从 Angular 到烧瓶进行 API 调用。在烧瓶中,我得到的是 [OPTIONS] 而不是 [POST]。如果我两次调用相同的 API,那么烧瓶会将其识别为 [POST] 方法。

这是烧瓶代码:

这是 Angular 中的 API 服务:

这是我点击注册按钮时调用的方法:

烧瓶中的终端输出:

检查中的网络选项卡: 注册

谢谢。