如何在服务器端(django)设置Access-Control-Allow-Origin响应头来允许跨域请求
时间: 2023-07-11 15:54:35 浏览: 224
在Django中,可以通过中间件来设置HTTP响应头Access-Control-Allow-Origin,从而实现跨域请求。具体实现方式如下:
1. 创建一个名为cors.py的中间件文件,并在其中定义一个名为CorsMiddleware的类,如下所示:
```
class CorsMiddleware:
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
response = self.get_response(request)
response["Access-Control-Allow-Origin"] = "*"
response["Access-Control-Allow-Headers"] = "Content-Type"
response["Access-Control-Allow-Methods"] = "GET, POST, PUT, DELETE, OPTIONS"
response["Access-Control-Allow-Credentials"] = True
return response
```
2. 将该中间件添加到Django项目的settings.py文件中的MIDDLEWARE中,如下所示:
```
MIDDLEWARE = [
# ...
'path.to.cors.CorsMiddleware',
# ...
]
```
3. 重新启动Django项目,即可在HTTP响应头中看到Access-Control-Allow-Origin等跨域请求相关的响应头。
需要注意的是,上述示例中设置的Access-Control-Allow-Origin为通配符"*",如果需要设置为特定的URL,则需要将其替换为相应的URL。同时,还可以根据实际情况设置其他跨域请求相关的响应头,如Access-Control-Allow-Headers、Access-Control-Allow-Methods等。
阅读全文