本文将为您介绍如何配置 CORS(跨源资源共享),以允许来自不同域的客户端访问您的服务器。
什么是 CORS?
CORS 是一种机制,允许 Web 应用程序从不同的域、协议或端口请求资源。这通常用于实现前后端分离的开发模式。
CORS 配置步骤
设置 HTTP 响应头:在响应中添加以下头部信息:
Access-Control-Allow-Origin
: 允许访问的域名,可以是具体域名或*
(表示所有域名)。Access-Control-Allow-Methods
: 允许的 HTTP 方法,例如GET, POST, PUT, DELETE
。Access-Control-Allow-Headers
: 允许的头部信息,例如Content-Type, Authorization
。
预检请求:当浏览器发起跨源请求时,会先发送一个预检请求(OPTIONS 请求),询问服务器是否允许该请求。服务器需要响应预检请求,并返回相应的头部信息。
响应选项请求:对于预检请求,服务器需要返回以下头部信息:
Access-Control-Allow-Origin
: 允许访问的域名。Access-Control-Allow-Methods
: 允许的 HTTP 方法。Access-Control-Allow-Headers
: 允许的头部信息。Access-Control-Allow-Credentials
: 是否允许携带凭据(例如 cookies)。
示例代码
以下是一个简单的 CORS 配置示例:
from flask import Flask, request, make_response
app = Flask(__name__)
@app.route('/api/data', methods=['GET', 'POST'])
def get_data():
response = make_response({'data': 'Hello, CORS!'})
response.headers['Access-Control-Allow-Origin'] = '*'
response.headers['Access-Control-Allow-Methods'] = 'GET, POST'
response.headers['Access-Control-Allow-Headers'] = 'Content-Type, Authorization'
return response
if __name__ == '__main__':
app.run()
扩展阅读
更多关于 CORS 的信息,请访问 MDN Web Docs。
CORS 图解