用代理规避跨域其实是很简单的事情,在往期的文章中已经有过类似的案例。但现在需要用"中台"的角度去思考问题。当前的项目分为三大部分:客户端(浏览器),同构服务端(nodejs中台,端口9000)和负责纯粹后端逻辑的后端(mockjs,端口9001)。
Js中获取浏览器信息字符串只要使用navigator.userAgent即可,这样我们再利用indexof来判断版本或其它信息了。
React基础 React组件 React-Router——Reac路由的学习 React高阶组件及CRA的定制 React中使用Antd组件
vue项目创建好了并且集成了基础的后台管理系统,调用后端接口也调通了。接下来就是开发后台管理系统的其他功能了,首先就是把相关路由和一些基础工具配置一下。
在Web开发中,经常需要搭建一个能够提供静态文件访问的服务器。无论是用于本地开发调试,还是用于部署网站,这都是一个常见的需求。本篇文章将介绍如何使用Node.js和其内置的HTTP模块来创建一个简单的静态文件服务器。
进去之后默认的就是首页也就是/当我们再地址栏输入index.html同样也是首页
1.前端将用户名和密码调用接口传给后端。 2.后端收到请求,验证用户名和密码是否正确,验证成功,返回一个token。 3.前端拿到token后,存储到localStorage和vuex中,并进行页面跳转。 4.前端每次跳转路由,都要判断localStroage有无token,没有则跳转登录页,有则跳转至对应路由页。 5.每次调用后端接口,都要在请求头中携带token。 6.后端判断请求头中有无token并验证,验证成功则返回数据,验证失败或没有token则返回401。 7.如果前端拿到401的状态码,则清空token信息并跳转登录页。
例如我们访问一个网站,www.123.com/index 这个/index就是路由,访问不同的页面路由就不一样,后台处理的方式也不一样,这样用来请求不同的资源. request.url获取浏览器传过来的路由信息,然后根据路由进行判断 server.js
https://github.com/ChenShenhai/koa2-note/blob/master/demo/static-server/open in new window
以 init 为程序的入口,代码中所有同步执行出现的错误都会被捕获,这种方式也可以很好的避免程序刚跑起来就挂。
这里的http静态服务器是指创建静态网站,并且通过node.js创建静态web服务器来向客户端提供服务。一个静态web服务器的例子就是Apache,只需要把网站相关的html,css,javascript,jpg等静态资源放到Apache的目录下,只需要访问主机名就可以显示网页了。
访问 http://localhost:3000/hello/world 页面会输出 /hello/world,也就是说上下文的请求request对象中url之就是当前访问的路径名称,可以根据ctx.request.url 通过一定的判断或者正则匹配就可以定制出所需要的路由。
在服务器根目录下打开 cmd 并运行 node WebServer 命令,然后在浏览器中输入 http://localhost:8124/ 即可查看。
合并图片(如css sprites,内置图片使用数据)、合并CSS、JS,这一点很重要,但是要考虑合并后的文件体积。
很多时候我们需要将某些内容在指定的页面中显示,比如将谷歌自动广告设置为不在首页显示,这些都可以通过修改代码来达到效果
网站的错误不经常发生,但当我们遇到的时候非常令人懊恼,比如当我们想要在线挂号的时候,遇到了这个: 为什么会出现这种情况,背后的服务器发生了什么?我们将使用Node.js做一个简单的web服务器并利用好
问题倒不难,但是这个问题之前被松哥忽略了。前两天有小伙伴提出这个疑问,我觉得有必要写篇文章和大家捋一捋这个问题。
沪江CCtalk视频地址:https://www.cctalk.com/v/15114923887518 处理错误请求 爱能遮掩一切过错。 当我们在访问一个站点的时候,如果访问的地址不存在(404)
除夕快乐!最近一直在开发Springboot都忘记照顾博客了,正好把最近研究的拦截器拿出来卖弄一下~
2、配置vuex全局 vuex的全局配置与上一节中vue-router的配置相似,抽象上我们有一个store文件夹,store文件夹下内容是实现,main.js中调用实现的内容。 我们看到import store from 'store/index' 代表引用store的index实现,在第12行中将store的实现作为参数赋值给Vue的全局配置进行使用,这样所有的页面都可以使用Vuex了。
通过前面的学习,我们了解并快速完成了spring boot第一个应用。spring boot企业级框架,那么spring boot怎么读取静态资源?如js文件夹,css文件以及png/jpg图片呢?怎么自定义消息转换器呢?怎么自定义spring mvc的配置呢?这些我们在公司都需要用的。这些怎么解决呢?在接下来的小节详细讲解这些。好了,现在开启spring boot的web开发第五节
今天是不幸的一天,为什么说呢,因为Github挂了!全球最大的同性交友网站挂了,让我等技术宅还怎么好好的撸代码呢?
JSFinder是一款优秀的github开源工具,这款工具功能就是查找隐藏在js文件中的api接口和敏感目录,以及一些子域名。
-多年互联网运维工作经验,曾负责过大规模集群架构自动化运维管理工作。 -擅长Web集群架构与自动化运维,曾负责国内某大型金融公司运维工作。 -devops项目经理兼DBA。 -开发过一套自动化运维平台(功能如下): 1)整合了各个公有云API,自主创建云主机。 2)ELK自动化收集日志功能。 3)Saltstack自动化运维统一配置管理工具。 4)Git、Jenkins自动化代码上线及自动化测试平台。 5)堡垒机,连接Linux、Windows平台及日志审计。 6)SQL执行及审批流程。 7)慢查询日志分析web界面。
下面我们来具体看看这几个漏洞形成的原因和解决方法。首先让我们来回顾一下网络安全的三要素。
location = / { # 精确匹配 /,主机名后面不能带任何字符串 [ configuration A ] } location / { # 因为所有的地址都以/开头,所有这条规则将匹配到所有请求 # 但是正则和最长字符串会优先匹配 [ configuration B ] } location /documents/ { # 匹配任何以/documents/开头的地址,匹配符合以后,还要继续往下搜索 # 只有后面的正则表达式没有匹配到时,这一条才会采用 [ configuration C ] } location ~ /documents/Abc { # 匹配任何以 /documents/开头的地址,匹配符合以后,还要继续往下搜索 # 只有后面的正则表达式没有匹配到时,才会采用这一条 [ configuration CC ] } location ^~ /images/ { # 匹配任何以/images/开头的地址,匹配符合以后,停止往下搜索正则,采用这一条 [ configuration D ] } location ~* \.(gif|jpg|jpeg)$ { # 匹配所有以gif,jpg或jpeg结尾的请求 # 然而,苏朋友请求/images/下的图片会被config D处理,因为^~到达不了这一正则 [ configuration E ] } location /images/ { # 字符匹配到 /images/,继续往下,会发现^~存在 [ configuration F ] } location /images/abc { # 最长字符匹配到/images/abc,继续往下,会发现^~存在 # F与G的放置顺序是没有关系的 [ configuration G ] } location ~ /images/abc/ { # 只有去掉config D才有效:先最长匹配config G开头的地址,继续往下搜索,匹配到这一正则,采用 [ configuration H ] } location ~* /js/.*/\.js
回归正题,我们所要的说的axios的封装和api接口的统一管理,其实主要目的就是在帮助我们简化代码和利于后期的更新维护。
在spa流行之前,前端路由是没有的;而像java之类的后台语言很早就有了,后端路由一般就是定义一系列的访问地址规则,路由引擎根据这些规则匹配并找到对应的处理页面,然后将请求转发给页面进行处理。 在spa应用中,前端路由是直接找到与地址匹配的一个组件或对象并将其渲染出来。改变浏览器地址而不向服务器发出请求有两种做法,一是在地址中加入#以欺骗浏览器,地址的改变是由于正在进行页内导航;二是使用HTML5的window.history功能,使用URL的Hash来模拟一个完整的URL。将单页程序分割为各自功能合理的组件或者页面,路由起到了一个非常重要的作用。它就是连接单页程序中各页面之间的链条。
从一个快要下班的BUG开始,由于原部门同事想要基于一个项目再拆分出几个项目,我们本来用的是qiankun(基座模式)的微前端模式,再拆分其实是比较简单的
一般网站为了防止资源被外部链接所盗用,都会使用防盗链来进行处理。思路就是判断请求的域名 如下一个相对完全的示例:
重写URL是非常有用的一个功能,因为它可以让你提高搜索引擎阅读和索引你的网站的能力;而且在你改变了自己的网站结构后,无需要求用户修改他们的书签,无需其他网站修改它们的友情链接;它还可以提高你的网站的安全性;而且通常会让你的网站更加便于使用和更专业。
最近在做微前端的项目 , 过程中真是踩了不少坑 , 在有限的资料中不断试错 , 默默无语两行泪 哈哈. 在此次将采坑部分都记录下来, 让更多的人少走点弯路 , 此项目使用 蚂蚁金服qiankun 为基础作为开发 . 话不多说 开讲 !!!
昨晚弄到三点就是为了 DIY 这 2 个页面,想给老婆一个浪漫的惊喜。 预览地址: 爱情纪念:http://zhangge.net/love 爱的故事:http://zhangge.net/love/forever 在线制作:http://zhangge.net/love/index.php 是别人的源码,没什么好说的,直接贴上作者说明: 一、超炫表白页面: 作者原话:为了预热情人节,麦葱二次开发了个表白程序。程序放在 BAE 上面,因为本地写这个原因,生成的页面过段时间就找不到了,导致链接页面 404,麦
相信很多的前端工作者都遇到过路由动态权限的需求,有些小伙伴一时之间也不知道该如何下手
Node.js 是一个基于 Chrome JavaScript 运行时建立的一个平台。
使用npm install或者npx link去软连接一个本地包作为依赖而不是使用npm link
个人理解:动态路由不同于常见的静态路由,可以根据不同的「因素」而改变站点路由列表。常见的动态路由大都是用来实现:多用户权限系统不同用户展示不同导航菜单。
我的博客在导航栏中有一个在线工具跳转,博客中提供了一些比较实用的在线工具,最近两天又添加了一个在线工具,作用是可以查询 docker 官方镜像仓库中指定镜像的版本信息,虽然之前写在线工具的时候就已经掌握了 django + jQuery ajax 的用法,但经过这次的工具更新,我对 ajax 的用法又有了更深层次的理解,所以分享一下我的使用经验。
在做wiki文档的时候需要引入markdown编辑器,在此记录一下 django 中引入markdown编辑器 1. textarea 输入框 --> markdown编辑器 --- 首先,我这里是使用 Form生成的表单,markdown 编辑器实质上就是替换 Form生成的 TextAreaundefined models 如下: ```python content = models.TextField(verbose_name='内容') ``` 在前端页面中,使用 for循环生成,部分代码
通过 http 模块提供的 http.createServer() 方法,就能方便的把一台普通的电脑,变成一台 Web 服务器,从而对外提供 Web 资源服务。
后台页面的权限验证与安全性是非常重要的,可以说是一个后台项目一开始就必须考虑和搭建的基础核心功能 我们前端所要做的是: 不同的权限对应着不同的路由,同时侧边栏也需要根据不同的权限 , 异步生成.
404 页面,除了显示冷冰冰的 404 Not Found 之外,其实我们可以做得更多。QQ空间就把 404页面和失踪的孩子联系到了一起,现在访问到QQ空间的一个任意不存在的页面(404页面),比如:http://qzone.qq.com/404,都能看到一个失踪孩子的信息:
顺序 no优先级: (location =) > (location 完整路径) > (location ^~ 路径) > (location ~,~* 正则顺序) > (location 部分起始路径) > (/)
对$http定义一个service服务 /** * http 自定义封装 */ ngServices.factory('httpService', function ($http, $timeout, $q) { // 默认参数 var _httpDefaultOpts = { method: 'POST', // GET/DELETE/HEAD/JSONP/POST/PUT url: '', params: {}, // 拼接在u
你是否有过这样的经历,整个SEO团队,在某一个时间节点,不知道干什么,虽然看着每天都非常忙,但在实战的操作中,貌似对于整站优化的提升,并没有什么大的改观,这个时候实际上整个团队是在等待一个有明确方向的决策。
以layui内置为例,在index.js 引入 bodyTab.js bodyTab.js 项目路径:/static/js/bodyTab.js
AJAX 不是新的编程语言,而是一种使用现有标准的新方法。AJAX 是与服务器交换数据并更新部分网页的艺术,在不重新加载整个页面的情况下。
领取专属 10元无门槛券
手把手带您无忧上云