我正在使用ReactJS开发一个应用程序,该应用程序使用Hyperion提供的rest与另一个企业应用程序(Oracle )通信。问题是这个API不受官方支持,也不支持CORS。我试图找到解决这个问题的办法,但没有成功。
在试图解决另一个问题的同时,我创建了一个Python应用程序,并使ReactJS应用程序和Hyperion之间的所有通信都通过它。不知怎么的,这使得正在发生的CORS错误消失了。我在Flask应用程序中使用了以下导入和功能
from flask_cors import CORS, cross_origin
CORS(app)
ReactJS应用程序现在只使用Axios与Flask应用程序通信,并且所有请求都是成功的,而不需要允许CORS插件。
的问题是:我现在需要知道这是如何可能的,因为我有一个命令,避免使用出于不同的原因。我想知道问题是如何解决的,以确保当我用另一种语言重写这个部分时,它不会再次出现,或者甚至消除它。在中间使用API是否解决了CORS问题?
发布于 2018-10-01 09:15:03
服务器发送的cors头由客户端进行验证,所以强制Cors的是客户机。存在禁用cors的浏览器插件,但出于安全考虑,这是不可取的。处理此问题的通常方法是使用反向代理,并将相关的HTTP访问控制响应头添加到响应中。因此,您可以通过使用反向代理(例如nginx/apache)来避免使用python。api与此无关,实际上,在您的情况下,您正在使用烧瓶作为一个反向代理来添加cors头。您可以通过使用浏览器开发工具来调试这一点。
发布于 2020-10-15 14:57:29
我的代码要切入CORS
导入请求
proxyUrl = 'https://cors-anywhere.herokuapp.com/'
url = 'Endpoint URL you want yo post to'
datas= {'data1': 'daVal1', 'data2': 'daVal2'}
headers = {'x-requested-with':'root_URL_Of_Endpoint', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36'}
x = requests.post(url, data = myobj, headers=headers)
print(x.text)
享受吧!
https://stackoverflow.com/questions/52587236
复制相似问题