2026/1/16 7:25:09
网站建设
项目流程
怎么去推广自己的网站,asp网站授权码如何做,顶呱呱做网站,快速搭建网站后天台一、先定位是什么#xff1a;CORS#xff08;Cross-Origin Resource Sharing#xff09;跨域资源共享#xff0c;是由浏览器和服务端共同遵循的、规范跨域 HTTP 请求行为的安全机制。它的核心作用是在浏览器 “同源策略” 的安全框架下#xff0c;允许服务端通过配置响应头…一、先定位是什么CORSCross-Origin Resource Sharing跨域资源共享是由浏览器和服务端共同遵循的、规范跨域 HTTP 请求行为的安全机制。它的核心作用是在浏览器 “同源策略” 的安全框架下允许服务端通过配置响应头明确声明 “哪些源域名 端口、哪些操作方法 / 头信息可以跨域访问自身资源”从而解决同源策略过于严格导致的合法业务跨域需求问题。二、为什么就是因为浏览器本身有一个叫同源策略的安全机制当前端页面的协议、域名、端口与后端 API 的协议、域名、端口不一致时浏览器会在接收后端响应后拦截数据而 CORS跨域资源共享通过服务端配置响应头让浏览器判定该跨域请求合法从而放行响应数据解决同源策略导致的跨域拦截问题。三、怎么解决CORS 通过让服务器在 HTTP 响应头中注入标准化的 CORS 响应头来告诉浏览器哪些源Origin哪些操作可以跨域访问资源而不同语言配置 CORS 响应头的方法都不一样java中是通过实现WebMvcConfigurer接口重写addCorsMappings方法来实现的。而我们的python则使用跨域资源共享中间件CORSMiddleware它的的核心作用就是在HTTP响应中注入CORS相关头信息让浏览器放行跨域请求。from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware app FastAPI() # 配置允许跨域的源生产环境替换为具体域名 origins [ http://localhost:3000, # 前端本地开发地址 https://www.xxx.com, # 生产环境前端域名 https://admin.xxx.com, # 多域名支持 ] # 添加跨域中间件 app.add_middleware( CORSMiddleware, allow_originsorigins, # 允许的跨域源列表形式支持多个 allow_credentialsTrue, # 是否允许携带 Cookie关键默认 False allow_methods[*], # 允许的请求方法* 表示所有如 GET/POST/PUT/DELETE allow_headers[*], # 允许的请求头* 表示所有如 Token/Content-Type max_age3600, # 预检请求OPTIONS的缓存时间秒避免频繁预检 ) # 测试接口 app.get(/api/test) async def test_cors(): return {msg: FastAPI 跨域请求成功} if __name__ __main__: import uvicorn uvicorn.run(app, host0.0.0.0, port8000)