CORS withCredentials: 服务器允许跨域访问的域名设置
当请求的 'withCredentials' 设置为 'True' 时,服务器返回的 'Access-Control-Allow-Origin' 头部字段只能设置一个域名,不能设置多个域名。这是由于 CORS(跨源资源共享)策略的限制所导致的。
CORS 是一种安全机制,用于限制跨域请求的权限。通过设置 'Access-Control-Allow-Origin' 头部字段,服务器指定了允许访问资源的域名。当请求中的 'withCredentials' 设置为 'True' 时,表示该请求带有身份凭证,例如 cookie、HTTP 认证等。在这种情况下,服务器只能将 'Access-Control-Allow-Origin' 头部字段设置为单个域名,以确保安全性。
以下是一个示例,演示如何在 Flask 中设置 'Access-Control-Allow-Origin' 头部字段,以允许来自单个域名的跨域请求:
from flask import Flask, jsonify, request
app = Flask(__name__)
@app.route('/data', methods=['GET'])
def get_data():
# 允许来自 example.com 的跨域请求
response = jsonify({'data': 'example'})
response.headers.add('Access-Control-Allow-Origin', 'http://example.com')
response.headers.add('Access-Control-Allow-Credentials', 'true')
return response
if __name__ == '__main__':
app.run()
在上述示例中,服务器会将 'Access-Control-Allow-Origin' 头部字段设置为 'http://example.com',并将 'Access-Control-Allow-Credentials' 头部字段设置为 'true',以允许来自该域名的跨域请求,并且带有身份凭证。
注意:在实际开发中,应根据自己的需求和安全要求,仔细设置跨域请求的权限和头部字段。
原文地址: https://www.cveoy.top/t/topic/pmur 著作权归作者所有。请勿转载和采集!