最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

焦点热门:前后端分离项目解决跨域的终极方法

来源:博客园


(资料图)

目录
  • 前后端分离项目解决跨域的终极方法
    • 一、在终端下载模块
    • 二、在配置文件注册APP
    • 三、中间件添加该配置
    • 四、在配置文件里添加以下配置

前后端分离项目解决跨域的终极方法

前后端分离的项目中,由于前端所运行的域名地址与后端常常不一致,在发送ajax时,我们常常会碰到跨域问题。这是浏览器制定的安全策略(同源策略Same origin policy),浏览器跨域名请求数据时,需要响应数据中包含对应的响应头表示同意这个异端请求拿取我们服务端的数据。CORS需要浏览器和服务器同时支持。目前,所有浏览器都支持该功能,IE浏览器不能低于IE10。整个CORS通信过程,都是浏览器自动完成,不需要用户参与。对于开发者来说,CORS通信与同源的AJAX通信没有差别,代码完全一样。浏览器一旦发现AJAX请求跨源,就会自动添加一些附加的头信息,有时还会多出一次附加的请求,但用户不会有感觉。因此,实现CORS通信的关键是服务器。只要服务器实现了CORS接口,就可以跨源通信。

一、在终端下载模块

pip3 install django-cors-headers -i https://pypi.tuna.tsinghua.edu.cn/simple/

二、在配置文件注册APP

"corsheaders"

三、中间件添加该配置

"corsheaders.middleware.CorsMiddleware",

四、在配置文件里添加以下配置

CORS_ORIGIN_ALLOW_ALL = TrueCORS_ALLOW_METHODS = ("DELETE","GET","OPTIONS","PATCH","POST","PUT","VIEW",)CORS_ALLOW_HEADERS = ("XMLHttpRequest","X_FILENAME","accept-encoding","authorization","content-type","dnt","origin","user-agent","x-csrftoken","x-requested-with","Pragma","token")

如果用FBV写的话还得注释掉CSRF中间件,如果是用CBV就没必要

关键词: 配置文件 自动添加 用户参与