关闭

前后端分离后,后端应该知道的一些基本前端知识

时间: 2018-05-30阅读: 2610标签: 前端

写下此文,是因为本人作为前端小白,经常遇到同样小白的后端,常常不得不三番五次科普一些前端的基础知识,特此做些总结,也方便有下次的话,直接拿出来给对方看。


1. 什么是ajax

        对于网络请求分类的维度有很多种,有一种就是这个请求发送出去是否需要刷新页面。比如form表单,比如直接从浏览器地址栏输入地址请求,这样的请求都是伴随着页面刷新的。而ajax,全称异步js和xml,简单来说,就是前端向后端发送请求,无需刷新页面,这在注重用户体验的前端领域,是极为宝贵的。不过有利就有弊,ajax很方便,但也有很多限制。

        对于ajax,后端并不需要了解多么深入,只需要知道有这么一回事,同时清楚,现在前后端交互,尤其是在前后端分离的情况下,ajax是使用最普遍的。


2. 跨域

      ajax有很多限制,在前后端分离之后,首当其中的就是跨域问题。在以前的诸如SSH框架下搭建的项目,因为前后端都在一起,是较少见跨域这种情况的,因此对于跨域的不了解,是后端小白们比较常见的问题。

      一个网络请求,url格式通常是:protocol://ip:port 。所谓跨域,就是当前页面的访问地址(也就是显示在浏览器地址栏里的url)和ajax请求的后端地址在protocol,ip,port三项中至少有一项不一样。

     如果出现了跨域ajax请求,因为浏览器的同源策略限制,如果不做任何处理,那么请求是不能成功的。对于跨域访问的解决方案有很多,比如jsonp,代理等方式,不过常用的还是CORS。

     使用CORS方案,后端要做的就是在请求响应头里添加'Access-Control-Allow-Origin'头,其值表示允许访问的源地址。常用的策略是获取request里的origin值,然后验证白名单(或黑名单),通过则将origin值赋给'Access-Control-Allow-Origin'响应头。测试的话,也可以设为*,表示允许来自任何源的跨域请求。


3. OPTIONS请求

      OPTIONS请求即预检请求,当一个请求不是简单请求时,浏览器会先发送一个预检请求,来确认是否能够请求成功,当能请求成功后,才会发送“真正”的请求。

      当使用跨域ajax的时候,因为会设置各种请求头信息,这样的请求就不是简单请求,这时就会出现预检请求的情况,在后端看来就会发现明明前端只请求了一次,却收到两次请求的情况,如果处理不当,就会出错。PS:有些框架可能会默认处理OPTIONS请求。


4.重定向

      在那个后端兼职的前端的古老年代,很多逻辑都是后端帮前端来做的,因此常常一言不合就302重定向。

      现在,后端同学们,你们必须知道一点,不要试图操作前端了,你们唯一能做的就是告诉前端,你们想要做什么,至于帮不帮你做,得由我们前端说了算。

      当然,这么说并不是我们前端傲娇,而是ajax是不允许302重定向的。这个问题比较常见的是一些老项目,要采用前后端进行重构,后端则还是原来那一套,这时就会出现各种返回302的情况。

      比如本人就遇到多次这样的问题。我们公司的登录认证是采用sso形式的,很多老项目都是当请求来时,验证cookie,不通过,直接上302跳SSO服务。而这样的代码一般都是通用的,我们的小白后端或者是直接继承了前辈的项目,或者是复制的以前的项目代码而不知这个隐蔽的情况。当我试图请求不成功,发现302后,我跟他说不能重定向,他一脸懵逼的摇头,我没重定向啊(有的还会问什么是重定向,这种情况我只能甩他一个百度百科)。直到我看到响应头里的Location包含着sso等字样,我不得不长叹一口气,告诉他认证那块呢,同志!


转载地址:https://blog.csdn.net/u014445339/article/details/74301489  

站长推荐

1.云服务推荐: 国内主流云服务商,各类云产品的最新活动,优惠券领取。地址:阿里云腾讯云华为云

链接: http://www.fly63.com/article/detial/841

前端应该懂得初级Web分析指标

从事该行业足够长的时间的人们经常会忘记这些指标对于新人来说听起来很荒诞,所以您必须原谅他们。 要学习网络分析并了解它如何使您受益,最好先了解周围常见的术语,这是一个好主意。

一个好的web前端开发者,是怎么学习的?

IT 行业的变化快是众人皆知的,需要持续去学习新的知识内容。但是,往往我们工作之后,经常发现学习的东西很少了,学习效率非常低,感觉自己到了一个瓶颈期

前端如何高效的与后端协作开发

前端与后端的分离,能使前端的开发脱离后端的开发模式,拥有更大的自由度,以此便可做前端工程化、组件化、单页面应用等。不管工具多么厉害,很多时候都免不了要当面沟通,友好、心平气和的沟通也是很重要的哩!

解读前端热更新原理

热更新:浏览器的网页通过websocket协议与服务器建立起一个长连接,当服务器的css/js/html进行了修改的时候,服务器会向前端发送一个更新的消息,如果是css或者html发生了改变,网页执行js直接操作dom,局部刷新,如果是js发生了改变,只好刷新整个页面。

Web前端的路该怎么走?

在一个相对公平的环境下,想要超越他人,只要能够完成他人完成不了的事情就可以了。大多数非计算机背景前端从业人员对于JS的系统学习是很难坚持下来的,时间长,收益缓慢,但是,如果你坚持下来了,你就超越了这些人

学习web前端开发,学历到底重不重要?

首先,我们先了解一下一般情况下学历的作用是什么,对于我们大多数人来讲,在进行面试的时候,学历最重要的一个作用就是“敲门砖”,现在任何公司招聘,都会写上大专学历以上或者是本科学历以上,但是对于真正有能力的人

前端,我为什么不要你

一方面是各种公司争相聘请,导致价格高的浮躁;一方面是从业者大多经历尚浅,浅到没什么技术积累,没什么项目经验,更可怕的是没什么进取心。这里总结一下,自勉

一篇文章了解大前端

大前端不仅会成为移动开发与Web前端的发展趋势,也将会是未来的显示设备终端的开发技术趋势。大前端将做更多的终端开发、工程化等工作,而不仅仅只是开发Web页面。大前端工程师将能搞定所有端上的开发。与充满争议的全栈工程师相比,它更具可操作性。

前端是做什么的?工作内容有哪些?

随着互联网全面进入移动时代,前端逐渐成为互联网行业中的重要角色。前端是做什么的?工作内容有哪些?简单来讲,前端要做的就是将产品的UI设计稿在用户终端上实现,因此可以说用户看到的所有视觉和交互都是前端的工作领域

不会Js能混前端么?能拿到高薪么?

有很多企业不注重前端开发,当然也就不会给你高薪了,这样的企业以小企业居多。他们一般对前端开发的认识很片面,认为前端开发就是做页面;在国内前端开发必须掌握的技能有两个

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!