Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django rest框架和跨源请求_Django_Rest_Cors_Django Rest Framework_Django Cors Headers - Fatal编程技术网

Django rest框架和跨源请求

Django rest框架和跨源请求,django,rest,cors,django-rest-framework,django-cors-headers,Django,Rest,Cors,Django Rest Framework,Django Cors Headers,我尝试从javascript客户端请求使用Django rest框架构建rest api。 对/api/test的所有GET请求都是公共的,那么就不需要会话、令牌或WATER。 所有api/测试的POST都是私有的,用户必须使用oauth2 根据,我必须使用管理跨来源请求。在将此模块安装到django之后,我设置了 CORS\u ORIGIN\u允许所有到True但是: 1) 这是一种好的做法吗? 2) 是否有一个好的解决方案,只允许在某些点上进行跨原点请求 谢谢使用django core头文件

我尝试从javascript客户端请求使用Django rest框架构建rest api。 对/api/test的所有GET请求都是公共的,那么就不需要会话、令牌或WATER。 所有api/测试的POST都是私有的,用户必须使用oauth2

根据,我必须使用管理跨来源请求。在将此模块安装到django之后,我设置了
CORS\u ORIGIN\u允许所有
True
但是: 1) 这是一种好的做法吗? 2) 是否有一个好的解决方案,只允许在某些点上进行跨原点请求


谢谢

使用django core头文件,您可以使用
CORS_ORIGIN_白名单
CORS_ORIGIN_REGEX_白名单
来限制CORS ORIGIN。如果你不需要允许任意的起源,那么设置它们;否则,你很好


如果愿意,您可以编写一个decorator来检查视图中的源代码,以查看它是否匹配所需的源代码(可能是在任何模型上设置的跟踪哪些用户被授权进行POST请求的内容?)。但是,如果您允许从任意来源获取请求,并且只要POST请求得到授权就不关心它们来自何处,那么您就清楚了——毕竟,如果您不知道客户端可能从何处发出请求,您如何限制来源?

谢谢您的回答。不幸的是,请求可以从客户浏览器中完成,因此我无法设置白名单:(