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

河间网站大型回合制手游排行榜

河间网站,大型回合制手游排行榜,安徽省建设干部学校网站关停,seo刷网站同源策略 一个源的定义 如果两个页面的协议#xff0c;端口#xff08;如果有指定#xff09;和域名都相同#xff0c;则两个页面具有相同的源。 举个例子#xff1a; 下表给出了相对http://a.xyz.com/dir/page.html同源检测的示例: URL结果原因http://a.xyz.com/dir2/ot…同源策略 一个源的定义 如果两个页面的协议端口如果有指定和域名都相同则两个页面具有相同的源。 举个例子 下表给出了相对http://a.xyz.com/dir/page.html同源检测的示例:  URL结果原因http://a.xyz.com/dir2/other.html成功 http://a.xyz.com/dir/inner/another.html成功 https://a.xyz.com/secure.html失败不同协议 ( https和http )http://a.xyz.com:81/dir/etc.html失败不同端口 ( 81和80)http://a.opq.com/dir/other.html失败不同域名 ( xyz和opq)同源策略是什么 同源策略是浏览器的一个安全功能不同源的客户端脚本在没有明确授权的情况下不能读写对方资源。所以xyz.com下的js脚本采用ajax读取abc.com里面的文件数据是会被拒绝的。 同源策略限制了从同一个源加载的文档或脚本如何与来自另一个源的资源进行交互。这是一个用于隔离潜在恶意文件的重要安全机制。 不受同源策略限制的 1. 页面中的链接重定向以及表单提交是不会受到同源策略限制的。 2. 跨域资源的引入是可以的。但是js不能读写加载的内容。如嵌入到页面中的script src.../scriptimglinkiframe等。 JSONP解决跨域问题 1、JSONP原理分析 利用 浏览器加载静态资源的时候不限制跨域 script src/script 我们使用cdn方式引用的jQuery文件也是跨域的它就可以使用。 同样是从其他的站点拿东西script标签就可以。那我们能不能利用这一点搞点事情呢 !DOCTYPE HTML html headmeta charsetUTF-8meta http-equivx-ua-compatible contentIEedgemeta nameviewport contentwidthdevice-width, initial-scale1titlexyz/title /head body button idb1点我/button script srchttps://cdn.bootcss.com/jquery/3.3.1/jquery.js/script scriptfunction rion() {console.log(选我不后悔);} /script script srchttp://127.0.0.1:8002/abc//script /body /html 后端返回响应 def abc(request):return HttpResponse(rion()) 刷新页面可以看到下面的结果。 这样就利用了浏览器加载静态资源的时候不限制跨域的特性实现了跨域请求拿数据。 2.jQuery中的getJSON方法 jQuery中封装了专门的方法实现jsonp。 示例 点击b1按钮发送jsonp请求到后端然后后端返回数据。 html : !DOCTYPE html html langen headmeta charsetUTF-8titleTitle/title /head body button idb1点我发送请求/buttonscript srcjquery.min.js/script script// 点击b1按钮发送jsonp请求$(#b1).click(function () {// 使用jquery提供的getJSON方法请求获取数据,// callback? 是固定格式会创建一个随机的字符串作为callback的value。$.getJSON(http://127.0.0.1:8000/index/?callback?,function (data) {console.log(data)})}) /script /body /html 后端项目函数 def index(request):data {name: zwq, age: 18}func_name request.GET.get(callback)print(func_name) # jQuery3310589826002995957_1547112594072return HttpResponse({}({}).format(func_name,json.dumps(data))) 但JSONP有一定缺陷 1.前后端都要支持 2.只能发GET请求  CORS解决跨域问题 CORS是一个W3C标准全称是跨域资源共享Cross-origin resource sharing。它允许浏览器向跨源服务器发出XMLHttpRequest请求从而解决AJAX只能同源使用的限制。 CORS需要浏览器和服务器同时支持。目前基本上主流的浏览器都支持CORS。所以只要后端服务支持CORS就能够实现跨域。 1.简单请求和非简单请求介绍 浏览器将CORS请求分成两类简单请求simple request和非简单请求not-so-simple request。 一个请求需要同时满足以下两大条件才属于简单请求。 1) 请求方法是以下三种方法之一HEADGETPOST2HTTP的头信息不超出以下几种字段AcceptAccept-LanguageContent-LanguageLast-Event-IDContent-Type只限于三个值application/x-www-form-urlencoded、multipart/form-data、text/plain 2.简单请求的处理方式 在跨域场景下当浏览器发送简单请求时浏览器会自动在请求头中添加表明请求来源的 Origin 字段。   我们的后端程序只需要在返回的响应头中加上 Access-Control-Allow-Origin 字段并且把该字段的值设置为 跨域请求的来源地址或简单的设置为 * 就可以了。  例如我们可以在Django中间件中的process_response方法来给相应对象添加该字段。 from django.utils.deprecation import MiddlewareMixinclass CORSMiddleware(MiddlewareMixin):# 处理简单请求的跨域请求def process_response(self, request, response):# 告诉浏览器来自这个源的请求是我允许的跨域请求# response[Access-Control-Allow-Origin] http://localhost:63342# 给响应头加上 Access-Control-Allow-Origin 字段 并简单的设置为 *表示所有跨域简单请求都放行response[Access-Control-Allow-Origin] *return response 非简单请求的处理方式 我们开发中常用到的那些请求方法是PUT或DELETE或者Content-Type字段的类型是application/json的都是非简单请求。 对于非简单请求浏览器通常都会在请求之前发送一次 OPTIONS 预检 请求。该请求会像后端服务询问是否允许从当前源发送请求并且询问允许的 请求方法 和 请求头字段。 举个例子  我们前端使用axios向后端发送PUT请求结果   看看发送的具体请求   解决办法也很简单我们可以在后端简单的给响应对象添加上 常用请求方法PUT、DELETE的支持就可以了。 在上面Django的中间件中添加如下代码 class CORSMiddleware(MiddlewareMixin):对所有跨域请求做放行处理def process_response(self, request, response):# 所有跨域简单请求都放行response[Access-Control-Allow-Origin] *if request.method OPTIONS:# 告诉浏览器你发的非简单请求修改了Content-type我允许了response[Access-Control-Allow-Headers] Content-type# 告诉浏览器 你发送PUT请求我也支持response[Access-Control-Allow-Methods] PUT, DELETEreturn response 使用django-cors-headers 我们这个中间件确实能解决目前的CORS跨域问题但是我们的方法肯定是不够严谨的django有一个第三方包django-cors-headers。 安装 pip install django-cors-headers 注册APP INSTALLED_APPS [...app01.apps.App01Config,corsheaders, # 将 corsheaders 这个APP注册 ] 添加中间件 必须放在最前面因为要先解决跨域的问题。只有允许跨域请求后续的中间件才会正常执行。 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, ] 配置 可以选择不限制跨域访问 CORS_ORIGIN_ALLOW_ALL True 或者可以选择设置允许访问的白名单 CORS_ORIGIN_ALLOW_ALL False CORS_ORIGIN_WHITELIST (# YOUR_DOMAIN[:PORT],127.0.0.1:8080 ) 更多详细配置详细请查看django-cors-headers项目  转载于:https://www.cnblogs.com/zwq-/p/10252210.html
http://www.zqtcl.cn/news/441347/

相关文章:

  • 哪些网站可以做画赚钱宁波模板建站定制
  • 昆明门户网站建设wordpress权限设置
  • 设计网站建设图片wordpress博客置顶
  • 网站上海网站建设网站数据建设涉及哪些内容
  • 3d效果图教程网站宁波网站建设慕枫科技
  • 视频结交网站怎么做想创建一个网站
  • 电商网站销售数据分析上海企业信息登记号查询
  • 网站建设规划设计公司排名无锡网站建设 君通科技
  • 徐州网站开发要多少钱给个人网站做百度百科
  • 法语网站建设免费网站为何收录比较慢
  • 品牌网站推广软件seo内链优化
  • 广东律师事务所东莞网站建设做网站 怎么备案
  • shopnc本地生活o2o网站源码wordpress文章内多页效果
  • 深圳全国网站制作哪个好页面设计有哪几种风格
  • 网页设计作业网站素材和效果图夏天做啥网站致富
  • 利用帝国软件如何做网站网站友链交换平台
  • 简述网站开发技术深圳网站设计合理刻
  • wordpress网站名称寻找销售团队外包
  • 一浪网站建设网页qq邮箱
  • 做网站需要注册公司吗夫唯seo系统培训
  • 沈阳人流哪个医院好安全百度关键词优化怎么做
  • 1688网站怎么做分销高质量的网站内容建设
  • 网站建设公司济宁网站转跳怎么做
  • 镇江网站设计多少钱企业网络部署方案
  • 建网站的公司浩森宇特wordpress登录缓存
  • 便宜建站空间战队头像在线制作免费
  • 做招聘网站赚钱吗厦门网站建设哪里好
  • 新乡网站建设哪家公司好阿里巴巴做国际网站多少钱
  • 怎么在悉尼做网站dede做手机网站
  • 企业网站模板免费下载品牌建设专家库推荐表