django跨域设置

跨域出现的场景:

1. 前后端分离项目开发

2. 前端真的是想去请求其它IP、PORT下的api接口

 

跨域:

只有web前端会出现的情况,浏览器的保护机制。

请求的IP、端口和当前在访问的网站不同,就会产生跨域。

 

跨域的出现:

例如在自己的网站,需要从百度接口获取内容,以前端角度去请求内容,就会产生跨域。

 

跨域的运行机制:

前端访问跨域网站接口,会自动发送一个OPTIONS请求,之后在跟随一个自己的请求,如果OPTIONS请求被拒绝,后端的请求则失败,如果OPTIONS请求后端设置通过,第二个请求后端没有设置通过,照样是请求失败。

 

跨域需要注意的:

跨域请求不能携带cookie(个人研究了半天,没搞定)。

 

后端的解决跨域的方式1:

1. 在响应中间件搞事情,给响应头添加些字段即可。

django跨域设置

// *表示所有都可以

// Methods是允许跨域的请求方式

// Origin是允许跨域请求的地址(如自己的后端是192.168.1.10:9000,第三方是192.168.2.10:9000,那么这里如果指向一个地址允许跨域就填写,'http://192.168.1.10:9000'即可实现一个允许的,如果可能多个用逗号分隔)

// Origin注意:地址头需要完全一样,才能通过

 2. 项目settings文件加入这个自定义中间件

django跨域设置

前提:后端是自己方开发的

使用场景:前后端分离项目开发中 

 

后端解决方式2:

使用Ngnix做代理,由Nginx返回静态文件和它和后端交互。

前提:不涉及第三方接口时候

使用场景:项目上线时候使用

 

后端解决方式3(跨域只是浏览器的限制):

前端请求自己的后端接口,后端去请求第三方的接口,拿到内容,给前端返回。

使用场景:项目上线了,第三方后端没有做跨域处理时候(伪造前端式请求,通过requests模块)

 

上一篇:docker_ui离线安装


下一篇:PHP-FPM运行原理