当前位置: 首页 > news >正文

大淘客网站如何做制作珠海网站建设网站

大淘客网站如何做制作,珠海网站建设网站,义务 网站建设,个人信息网站文章目录 背景什么是跨域问题?跨域问题的解决方案 Django 解决跨域问题 背景 什么是跨域问题? 跨域问题是指浏览器的同源策略限制了来自不同域的 AJAX 请求。 具体来说: 同源策略要求源相同才能正常进行 AJAX 通信。判断是否同源需要满足三个条件: 协…

文章目录

    • 背景
      • 什么是跨域问题?
      • 跨域问题的解决方案
    • Django 解决跨域问题

背景

什么是跨域问题?

跨域问题是指浏览器的同源策略限制了来自不同域的 AJAX 请求。
具体来说:

  • 同源策略要求源相同才能正常进行 AJAX 通信。
  • 判断是否同源需要满足三个条件:
    1. 协议相同(http或https)
    2. 域名相同
    3. 端口相同
  • 不满足以上条件就是不同源,属于跨域。
    举个例子:
  • 前端域名是:http://www.example.com
  • 后端域名是:http://api.example.com
    虽然二者域名相关,但前三段不完全一致,所以属于跨域。
    当前端通过 AJAX 请求后端接口时,就会触发浏览器的同源策略,请求会被阻止。
    这就是跨域问题。

跨域问题的解决方案

  • 部署时使前后端域名满足同源策略
  • 通过 CORS 让后端 server 明确告知浏览器允许跨域请求
  • 通过代理服务器避免前端直接跨域请求后端
    前端代理的方式可以在开发环境使用,但实际生产环境还是应该后端启用 CORS。前端代理增加了部署复杂度。
  • JSONP等其他跨域方案已经不再推荐,存在安全和使用上的限制。

如果前后端可以部署在同一个域名下,那么可以避免跨域,这是最简单的方案。如果前后端实在无法部署在同域名,那么最常见和推荐的就是后端启用 CORS。这是官方推荐的标准跨域方案。

Django 解决跨域问题

Django 框架中通过 django-cors-headers 这个模块解决。

  1. 安装库:
pip install django-cors-headers
  1. 在 settings.py 中添加应用:
    安装cors-headers应⽤
# 注册应用
INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','corsheaders',  # 解决跨域CORS]
  1. MIDDLEWARE中启用中间件:(cors放在所有中间件的最外层,这样可以第一时间被检测,避免无意义的操作)
# 中间件
MIDDLEWARE = ['corsheaders.middleware.CorsMiddleware',  # 最外层的中间件'django.middleware.security.SecurityMiddleware','django.contrib.sessions.middleware.SessionMiddleware','django.middleware.common.CommonMiddleware','django.middleware.csrf.CsrfViewMiddleware','django.contrib.auth.middleware.AuthenticationMiddleware','django.contrib.messages.middleware.MessageMiddleware','django.middleware.clickjacking.XFrameOptionsMiddleware',
]
  1. 添加⽩名单,配置 CORS_ORIGIN_WHITELIST
CORS_ORIGIN_WHITELIST = ('http://127.0.0.1:80','http://localhost:80',
)
CORS_ALLOW_CREDENTIALS = True  # 跨域时允许携带cookie
CORS_ORIGIN_ALLOW_ALL = True # 设置为 True 意味着接受任意跨域请求,这是非常危险的行为,上线时一定要设置为 False。CORS_ORIGIN_ALLOW_ALL = True,那么 CORS_ORIGIN_WHITELIST 和 CORS_ALLOW_METHODS 等其他CORS相关配置将不再起作用。CORS_ALLOW_METHODS = ('DELETE','GET','OPTIONS','PATCH','POST','PUT','VIEW',
)CORS_ALLOW_HEADERS = ('www-authorization','XMLHttpRequest','X_FILENAME','accept-encoding','authorization','content-type','dnt','origin','user-agent','x-csrftoken','x-requested-with','Pragma',
)

此外,需要注意:

  • 不要使用 ‘*’ 来接受任意域名访问
  • 明确设置 allowed methods、headers 等来增加安全性
  • 在生产环境中关闭 DEBUG 模式
http://www.yayakq.cn/news/42412/

相关文章:

  • 深圳的设计网站做网站遇到各种问题
  • 门户网站建设定制wordpress 空搜索
  • 石家庄seo网站排名电商网站页面设计
  • 福州网站建设方案优化平面设计素材免费
  • 网站新闻页设计企业网站建设 推广
  • 哪些网站是用响应式做的百度信息流推广是什么意思
  • 上海企业网站工作态度和责任心感悟
  • 网站设计和程序员设计制作小车二教学视频
  • html5网站后台广告东莞网站建设技术支持
  • 北京工信部查网站备案精准营销的案例名称及分析
  • 头像制作网站joomla网站如何加入会话功能
  • 安徽省建设监理网站友情链接互换
  • 邯郸市城市建设局网站电子商务都包括什么
  • 为什要做网站网站建设平台推广
  • 甘谷县建设局网站长沙网站seo排名
  • 帮人做网站 怎么收费网站建设免费的
  • 满山红网站建设公司湖南省百川电力建设有限公司网站
  • 健身网站怎么做php网站的特点
  • 清溪做网站中山 网站建设
  • 网站改版的步骤长沙互联网广告公司
  • 五合一网站制作视频教程?3d动画制作软件手机版
  • 设计网站接单广东朝阳企讯通科技有限公司
  • 卫浴网站源码wordpress好的播放器
  • 网站页眉设计wordpress自定义分类目录
  • 大悟建设局网站方案策划怎么做
  • 南宁网站建设是什么怎样修改wordpress模板
  • 票务系统网站模板徐州网站建设熊掌号
  • 网站建设互联网营销营销推广商务网站制作语言基础
  • 做任务挣钱的网站张家界seo优化方案
  • 常州兼职网站建设现在还可以做夺宝网站