00,跨域的问题
Posted pontoon
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了00,跨域的问题相关的知识,希望对你有一定的参考价值。
什么是跨域?
DRF是怎么解决跨域问题?
写restfull响应的接口要额外的加一个相应头。
response中只是响应了很多的数据,还需要增加响应头。
在哪加,在中间件里加
<wiz_code_mirror>
x
1
class MiddlewareMixin:
2
def __init__(self, get_response=None):
3
self.get_response = get_response
4
super().__init__()
5
6
def __call__(self, request):
7
response = None
8
if hasattr(self, ‘process_request‘):
9
response = self.process_request(request)
10
if not response:
11
response = self.get_response(request)
12
if hasattr(self, ‘process_response‘):
13
response = self.process_response(request, response)
14
return response
15
16
17
class CORSMiddleware(MiddlewareMixin):
18
def process_response(self, request, response):
19
# 添加响应头
20
# 允许你的域名来获取我的数据
21
response[‘Access-Control-Allow-Origin‘] = "*"
22
23
# 允许携带Content-Type请求头
24
# response[‘Access-Control-Allow-Headers‘] = ‘Content-Type‘ Content-Type = url-encodeing
25
26
# 允许发送DELETE,PUT(复杂请求)
27
# response[‘Access-Control-Allow-Methods‘] = "DELETE, PUT"
28
29
return response
再到settings.py中注册一下
<wiz_code_mirror>
1
MIDDLEWARE = [
2
...
3
‘app01.cors.CORSMiddleware‘,
4
]
在这里跨域还要分简单请求与复杂请求
如果只是发送GET请求那么则说明是简单请求!反之为复杂请求!
以上是关于00,跨域的问题的主要内容,如果未能解决你的问题,请参考以下文章