首页 > 其他分享 >08-Flask中实现跨域请求

08-Flask中实现跨域请求

时间:2024-10-25 15:22:50浏览次数:7  
标签:__ 跨域 Flask 08 flask CORS app

为什么需要支持跨域

浏览器的同源策略(Same-Origin Policy)限制了跨域请求,如果不进行特殊处理,跨域请求将被浏览器拦截。

场景注意出现在前后的分离项目、第三方API等场景,接口支持跨域能够允许浏览器跨域请求不被浏览器拦截,让前端应用能够安全地请求不同域的资源,绕过浏览器的同源策略限制。

 

Flask实现跨域请求

flask-cors的文档:https://flask-cors.readthedocs.io/

1)安装flask-cors扩展来支持跨域请求

pip install flask-cors -i https://pypi.tuna.tsinghua.edu.cn/simple/

2)在Flask应用中全局跨域

from flask import Flask, jsonify
from flask_cors import CORS  # 导入CORS

app = Flask(__name__)
CORS(app)  # 为整个应用开启跨域支持

@app.route('/example', methods=['GET'])
def example_route():
    response = {
        "message": "This is a cross-origin enabled response!"
    }
    return jsonify(response)

if __name__ == '__main__':
    app.run()

扩展:默认情况下,CORS扩展将允许所有的跨域请求,但也可以通过配置选项来限制允许的来源、方法等。

配置特定的跨域设置,例如仅允许来自 http://localhost:3000 的请求

CORS(app, resources={r"/*": {"origins": "http://localhost:3000"}})

3)在Flask应用中单个接口设置跨域

如果只想给其中某个接口设置跨域,而不是整个应用都支持跨域,可以使用CORS扩展的cross_origin装饰器来实现

from flask import Flask
from flask_cors import CORS, cross_origin

app = Flask(__name__)

@app.route('/api/some_endpoint')
@cross_origin()
def some_endpoint():
    # 处理接口逻辑
    return 'Hello, World!'

扩展:也可以通过cross_origin装饰器的参数来进一步自定义跨域请求的行为。例如,你可以指定允许的来源、方法等:

@app.route('/api/some_endpoint')
@cross_origin(origins='http://example.com', methods=['GET', 'POST'])
def some_endpoint():
    # 处理接口逻辑
    return 'Hello, World!'

 

标签:__,跨域,Flask,08,flask,CORS,app
From: https://www.cnblogs.com/REN-Murphy/p/18502621

相关文章

  • ORA-00800 报错
    公司平台从11g升级到19c之后,Linux平台下Oracle19c启动时,告警日志出现ORA-00800错误的问题,并且能定位是启动VKTM进程时抛出的错误。环境描述:操作系统:RedHatEnterpriseLinuxrelease8.8数据库:19.24.0.0.0企业版问题描述:在Oracle19c启动时,在Oracle的告警日志中会出现下......
  • P1085 [NOIP2004 普及组] 不高兴的津津 难点:如何按要求实现打印最生气的天数.py
    """anger=0day=0foriinrange(7):inclass,extra=input(map(int,input().split()))anger=inclass+extraday+=1"""#将anger数组的大小排序,输出anger最大的那一天,但我无法将anger和day连接起来排序#解决办法是用max_anger和angriest_day两个变量,在七天的......
  • 408计算机网络ss1思维导图
                  ......
  • 在 Windows Server 2008 R2 中,您可以使用批处理(.bat)文件来查询 Win32_NetworkAdapterC
    在WindowsServer2008R2中,Win32_NetworkAdapterConfiguration类是Windows管理工具(WMI)基础结构的一部分。它提供了有关服务器上网络适配器配置的详细信息。您可以使用此类查询各种网络设置,例如IP地址、子网掩码、DNS服务器和DHCP设置。Win32_NetworkAdapterConfigurat......
  • NOD2308B. 酒杯(glass)
    NOD2308B.酒杯(glass)题意有一棵\(n\)层的满二叉树,有\(m\)次操作,每次操作从\(2^n-1\)个节点中随机选择一个节点染黑(可以重复染色),问使得每一层都至少有一个节点被染黑的方案数。\(n,m\le2000\),答案对\(10^9+7\)取模。solution%%%蔡队代码未编写,因此过程可能推错,请......
  • SketchUp:插件与扩展工具使用教程_2024-07-16_08-30-54.Tex
    SketchUp:插件与扩展工具使用教程SketchUp插件概述插件的重要性在SketchUp中,插件(Plugins)扮演着至关重要的角色,它们极大地扩展了SketchUp的基本功能,使用户能够进行更复杂、更精细的建模工作。SketchUp作为一个强大的3D建模软件,其核心功能已经能够满足大部分基础建模需求,但......
  • 【408真题】2014-39
    “接”是针对题目进行必要的分析,比较简略;“化”是对此题型的解题套路总结,并结合历年真题或者典型例题进行运用。涉及到的知识全部来源于王道各科教材(2025版)(408神功练成中……)文章目录一、接:本题分析二、化:套路总结一、接:本题分析2014-39分析【答】B【解......
  • nginx 跨域配置
    userwwwwww;worker_processesauto;error_log/www/wwwlogs/nginx_error.logcrit;pid/www/server/nginx/logs/nginx.pid;worker_rlimit_nofile51200;stream{log_formattcp_format'$time_local|$remote_addr|$protocol|$status|$bytes_sent|$bytes_......
  • 基于 Python 的机器学习模型部署到 Flask Web 应用:从训练到部署的完整指南
    目录引言技术栈步骤一:数据预处理步骤二:训练机器学习模型步骤三:创建FlaskWeb应用步骤四:测试Web应用步骤五:模型的保存与加载保存模型加载模型并在Flask中使用步骤六:Web应用的安全性考量示例:简单的输入验证示例:自定义错误处理示例:使用Flask-JWT-Extended进......
  • LevOJ P2084奇迹树脂
    题目概述:给定了函数f的表达式与函数g的表达式,给了T(T<=100)次询问,每次询问一个数n(n<=1e12),求g(n)的值,最终答案对1e9+7取模。tag:记忆化,递归,数学题解:首先我们需要知道取模的常识:1.(a+b)%mod=(a%mod+b%mod)%mod2.a*b%mod=a%mod*b%mod3.(a+b)%mod=(a+b+mod)%mod......